我聲明一個通用的結構和這些結構的數組下面給出:澄清結構指針的陣列用C
struct A
{
int x,y,z;
char a,b,c;
};
struct A *str_arr[5];
從我的理解str_arr
是指向存儲塊,其存儲的指針到
struct A *str_a = str_arr[1]; // points to 2nd struct?
struct A *str_b = str_arr + 2*sizeof(struct A*); // points to 3rd struct?
然而,這些5層結構可能無法在順序存儲器:以順序次序5層結構,因此,這些指針可以通過指針算術或數組索引作爲訪問?
printf("%p\n", str_arr); // prints memory location of start of str_arr pointers?
printf("%p\n", str_arr[1]) // prints memory location of 2nd struct?
printf("%d\n" str_arr == &str_arr[0]) // prints 1?
我只是想澄清一下,我的理解是正確的,我提出的所有觀點。
'str_arr'是指向'struct A'的指針數組(五個指向'struct A'的指針)。 – BLUEPIXY
就像'int a [42]中的整數'不必按順序排列。他們是你放在那裏的任何東西。 – juanchopanza