定義乙個結構體陣列
typedef
struct
test_t;
test_t c[3]
;
那麼c、&c、&c[0]
有什麼區別和聯絡呢?
陣列名c
代表陣列第乙個元素的指標,指向第乙個元素(即&c[0]
),陣列中的其它元素可以通過c
的位移得到,即c+i=&c[i]
。所以c
和&c[0]
意義是一樣的。
&c
數值上等於整個陣列的首位址,在數值上與&c[0]
相等,含義上代表整個陣列所佔記憶體的大小,其高階單位是整個陣列的位元組長度。
假設&c
代表的位址為0xb00008a0
,那麼c+1
和&c+1
對應的位址是什麼呢?
答案是:
c+1
對應位址為0xb00008a0+sizeof(int)+sizeof(float)
,
&c+1
對應位址為0xb00008a0+3*(sizeof(int)+sizeof(float))
。
陣列與陣列的位址
問題 int ia 2 cout ia 執行結果如下 0012ff38 0012ff38 我想問一下,如果說ia是的值是陣列第乙個元素的位址,即 ia 0 那麼ia作為乙個變數也應該有乙個位址,這個位址的值為什麼也是和 ia 0 一樣呢?如果說 ia ia 0 a 0 1 因為 ia的值和 ia 0...
C語言 取陣列首位址
我們先看下面這段 include intmain int p int arr 1 arr操作的是整個陣列,返回的指標指向整個陣列,arr 1偏移的是整個陣列的長度。printf p p n arr,arr printf p p n arr 1,arr 1 printf d d n p 1 p 1 p...
陣列 陣列名 陣列位址學習
先來看乙個例子,然後通過分析例子來學習 include int a 3 int main 結果 a 0x555e35977010 a 0x555e35977010 a 1 0x555e35977014 a 1 0x555e3597701c我們來逐個分析 1.陣列名的值是個指標常量,指向陣列的第乙個元...