A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小平 中级黑马   /  2015-1-4 00:45  /  796 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 依据 :优先级:()>[]>*
2. 数组指针:(也称行指针)
数组指针是指向数组地址的指针,其本质为指针;

     说明:p是一个指针变量,它指向包含5个int元素的一维数组,此时p的增量以它所指向的一维数组长度为单位;
*p+i是二维数组a[0][i]的地址;
*(p+2)+3表示a[2][3]地址(第一行为0行,第一列为0列),*(*(p+2)+3)表示a[2][3]的值。
3. 指针数组
指针数组是数组元素为指针的数组(例如 int *p[3],定义了p[0],p[1],p[2]三个指针),其本质为数组。

2 个回复

倒序浏览
例如:{int a[4][5];int (*p)[5]=a;}这里a是个二维数组的数组名,相当于一个二级指针常量;
回复 使用道具 举报
数组指针:    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};   int (*p)[4]; p=a; for(int i=0;i<3;i++)      { for(int j=0;j<4;j++)   {   printf("%d",p[i][j]); //或者 *(*(p+i)+j) 或者 *(p[i]+j)   }   printf("\n");   } 指针数组: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};   int *p[3];   for(int ix=0;ix<3;ix++)   p[ix]=a[ix]; for(int i=0;i<3;i++)      { for(int j=0;j<4;j++)   {   printf("%d",p[i][j]); //或者 *(*(p+i)+j) 或者 *(p[i]+j)   }   printf("\n");   }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马