一.p为数组 : const char *p[5]={“abcd”,“efg”,“hijk”,“vfvf”,“fvfv”};输出时
1.p[0]={“abcd”} p[1]={“efg”} p[2]={“hijk”} …
2.char *p[行长度] 此时=p[5][n] 相当于是5行n列p[0][0]=‘a’ p[0][1]=‘b’ … 此时p是二级指针 ((p+0)+0)=p[0][0]=‘a’ ((p+0)+1)=p[0][1]=‘b’ …
可以输出元素,能输出地址
二.p为指针: Int (*p)[4];Int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
P=a;
1.int (p)[4]={1,2,3,4,5,6,7,8,9};错误 p是指针,不是数组,必须指向
2.int (p)[4];==int **p;p相当于二级指针 定义 int(p)[列长度] 列长度必须与a[行][列]的列长度相同 int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; p=a;
1.((P+i)+j)=P[i][j]
2.(P+i)+j=&P[i][j]
可以输出元素,地址
斜体样式
int *p[4]与int(*p)[4]具体差别以及例题用法
最新推荐文章于 2021-05-26 20:02:21 发布