菜鳥學習C語言 陣列位址與陣列元素位址

2021-10-09 02:00:16 字數 684 閱讀 3502

定義乙個結構體陣列

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.陣列名的值是個指標常量,指向陣列的第乙個元...