1.指针数组
指针数组定义的是一个数组,数组元素是指针类型的。例如:
int num = 10; int age = 12; int *ptr[2] = {&num, &age }; for(int i = 0; i < 2; i++) { printf("ptr[%d] = 0x%x\n", i, ptr[i]);
printf("val[%d] = %d\n", i, *(ptr[i]));
}
1 int main() 2 { 3 int line1[]={1,2,3}; 4 int line2[]={6,7,8}; 5 int line3[]={4,5,9}; 6 //int *pline[3]={line1,line2,line3};//指针数组,数组内的每一个元素都是指针(地址) 7 int *pline[3]={&line1[0],&line2[0],&line3[0]}; 8 cout<<"Matrix test:"<<endl; 9 for(int i=0;i<3;i++) 10 { 11 for(int j=0;j<3;j++) 12 { 13 cout<<pline[i][j]; 14 cout<<"||"; 15 cout<<*(*(pline+i)+j)<<" ";//也可用*(ptr[i]+j) 16 } 17 cout<<endl; 18 } 19 system("pause"); 20 return 0; 21 }
运行结果
2.数组指针
数组指针是一个指针指向一个数组类型的变量。
int array[3] = {10, 11, 12}; int (*p)[3] = &array; for(int i = 0; i < 3; i++ ) { printf("---- array[%d] = %d ----\n", i, *(*p+i)); }