数组和指针

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));
}

 

posted @ 2015-10-23 17:05  dongyanxia  阅读(263)  评论(0编辑  收藏  举报