一維陣列,二維陣列與指標

2022-07-13 23:09:17 字數 2342 閱讀 4826

陣列與指標間的三條規則:

陣列名是指向陣列首元素的指標。

&e相當於給e公升了一階。(int a[4]=,a[0]本身是乙個值,&a[0]是乙個位址,公升階大概就是這個意思)

*e相當於給e降了一階。(降階相當於把乙個指標降為值,&a[0]是乙個位址,*(&a[0])就成為了值)

以上內容來自北京大學  c程式設計高階

一維陣列與指標

1 #include2 #include3

intmain()4;

6 printf("

%p\n

",a); //陣列首元素的位址

7 printf("

%p\n

",&a[0

]);//陣列首元素的位址,a[0]為值,加&公升階

8 printf("

%p\n

",a+1

);//a為陣列首元素的位址,陣列首元素為指向int型的指標,a+1為第二個元素的位址

9 printf("

%p\n

",&a[0]+1

);//a[0]為陣列的首元素,加&公升階,再加一為第二個元素的位址

10 printf("

%p\n

",&a);//a為陣列 首元素的位址,&a公升階,為指向陣列的指標,值還是和陣列首元素的位址一樣,意義不同。

11 printf("

%p\n

",&a+1

);//&a為指向陣列的指標,陣列有4個元素,+1則一次加16個位元組,

12 printf("

%p\n

",*(&a+1

));//加*降階,為指向陣列最後乙個元素後面的位址,還是位址

13 printf("

%p\n

",*(&a));//加*降階,為指向陣列首元素的指標,值為陣列首元素的位址

14 printf("

%d\n

",**(&a+1

));//再加乙個*再次降階,為乙個垃圾值

15 printf("

%d\n

",**(&a));//為陣列首元素的值

16 printf("

%d\n

",*(&a[0

]));//同上

執行結果如上。

二維陣列與指標

乙個二維陣列int a[3][4]=,,};

在記憶體中存放的時候是按照順序存放的,關於二維陣列與指標的關係,依然可以套用上面的三條規則,這時的a還是陣列首元素的指標,只不過這個首元素是乙個一維陣列。

#include#include

intmain()

,,};

printf(

"a=%p\n

",a);//陣列首元素的指標,和1的位址相同

printf(

"&a[0]=%p\n

",&a[0

]);//a[0]是二維陣列首元素的指標,二維陣列首元素是乙個一維陣列,加&公升階後和上面的意義一樣

printf(

"a+1=%p\n

",a+1

);//二維陣列的第二個元素的位址

printf(

"&a[0]+1=%p\n

",&a[0]+1

);//

printf(

"a[1]=%p\n

",a[1

]); printf(

"&a[1]=%p\n

",&a[1

]); printf(

"*(a+1)=%p\n

",*(a+1

));//a+1是二維陣列的第二個元素的位址,加*降階為第二個元素的首元素的位址

printf(

"*a+1=%p\n

",*a+1

);//a是二維陣列首元素的位址加*降階,為第乙個元素的首元素的位址,+1為二維陣列第乙個元素的第二個元素的位址

printf(

"&a=%p\n

",&a);//指向整個二維陣列的指標

printf(

"&a+1=%p\n

",&a+1

);//+1一次跨越48個位元組

exit(0);

}

執行結果如下

指標與一維 二維陣列

示例程式 includevoid main int i,j 用陣列名做指標輸出資料 第一種方式 printf s n m 第二種方式 for i 0 m i 0 i printf c m i 注意點1 printf n 通過定義指標型變數輸出 char p m 將陣列首位址賦給指標變數p 第一種方式...

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...

二維陣列與二維指標

一.指標與二維陣列 以martix 3 4 為例 1.二維陣列的本質 int martix 3 4 int martix 3 4 int 4 martix 3 令int 4 為type,type martix 3 為含有三個元素的陣列,每乙個元素型別為int 4 int 4 是乙個擁有4個int型別...