指標和陣列:
指標和一維陣列:
陣列名:
一維陣列名是個指標常量 它的值不能被改變 它存放的是一維陣列裡第一個元素的地址 一維陣列名指向的是陣列的下標為0的第一個元素。
下標和指標的關係:
1 a[i]<<==>>*(a+i)<<==>>*(i+a)<<==>>i[a] //符號表示等價於
1 #include<stdio.h> 2 int mian(){ 3 int a[5]; 4 printf("%p,%p",a,a+1);//%p以十六進位制輸出存放的前兩個陣列元素的地址,地址是連續的 5 return 0; 6 }
(一個位元組就是一個地址,int型別四個位元組,double八個位元組,char一個位元組,所有的指標變數只佔用4個位元組,用第一個位元組的地址表示整個變數的地址)
如何通過被調函式修改主調函式中一維陣列的內容:
兩個引數:
1.存放陣列首元素的指標變數
2.存放陣列長度的整型變數
1 #include<stdio.h> 2 void arry(int* p,int len){ 3 int i; 4 for(i = 0;i<len;i++){ 5 printf("%d\n",p[i]); 6 } 7 } 8 int main(){ 9 int a[5]={1,2,3,4,5}; 10 arry(a,5);//傳遞陣列名,別忘了還有陣列長度 11 return 0; 12 }