C++——指標2-指向陣列的指標和指標陣列
阿新 • • 發佈:2019-01-08
7.4 指向陣列元素的指標
宣告與賦值
例:int a[10], *pa;
通過指標引用陣列元素,經過上述宣告及賦值後:
*pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i].
a[i], *(pa+i), *(a+i), pa[i]都是等效的。不能寫 a++,不能給陣列名賦值或者試圖改變其值,因為a是陣列首地址是常量。
例子:使用三種方法輸出陣列元素
使用陣列名和下標 |
使用陣列名指標運算 |
使用指標變數 |
int main() { int a[10]; int i; for(i=0; i<10; i++) cin>>a[i]; cout<<endl; for(i=0; i<10; i++) cout<<a[i];} |
int main() { int a[10]; int i; for(i=0; i<10; i++) cin>>a[i]; cout<<endl; for(i=0; i<10; i++) cout<<*(a+i);} |
int main() { int a[10]; int *p, i; for(i=0; i<10; i++) cin>>a[i]; cout<<endl; for(p=a; p<(a+10); p++) cout<<*p;} |
7.5 指標陣列
指標陣列的元素是指標型,例如:point *pa[2];由pa[0] ,pa[1]兩個指標組成。
#include <iostream> using namespace std; int main() { int line1[]={1,0,0}; //宣告陣列,矩陣的第一行 int line2[]={0,1,0}; //宣告陣列,矩陣的第二行 int line3[]={0,0,1}; //宣告陣列,矩陣的第三行 int *p_line[3]; //宣告整型指標陣列 p_line[0]=line1; //初始化指標陣列元素 p_line[1]=line2; p_line[2]=line3; cout<<"Matrix test:"<<endl; //輸出單位矩陣 for(int i=0;i<3;i++) //對指標陣列元素迴圈 { for(int j=0;j<3;j++) //對矩陣每一行迴圈 { cout<<p_line[i][j]<<" "; } cout<<endl; } }
#include <iostream> using namespace std; int main() { int array2[2][3]={{11,12,13},{21,22,23}}; //宣告二維int型陣列 for(int i=0;i<2;i++) { cout<<*(array2+i)<<endl; //輸出二維陣列第i行的首地址 for(int j=0;j<3;j++) { cout<<*(*(array2+i)+j)<<" "; } //逐個輸出二維陣列第i行元素值 //寫成 { cout<<*array2[i][j]<<" "; }比較好。 cout<<endl; }
}//輸出結果為:
0X0065FDE0
11,12,13
0X0065FDEC
21,22,23