C语言中*p[ ]是什么意思

如题所述

*p[]=*p([]),首先,它是一个数组,数组里面保存的是指针

(*p)[]则不同,首先它是一个指针,然后,它指向一个数组,但通常,再定义的时候需要指定所指向数组的大小。

示例:

#include <STDIO.H>

int main(int argc, char *argv)

 char a[10]="test"; 

 char *(p[])={"hello","world!"};//char指针数组,两个元素,分别指向hello和world

 printf("%s\n%s\n",p[0],p[1]);//分别输出两个元素

 char (*p2)[10]=&a;//指向数组的指针,所指向的数组有10个char元素

 printf("%s\n",p2);

 return 0;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-07
[ ]是变址运算符,p[ ]即计算p的地址并找出此地址单元中的值。如果此地址单元里存放的是另一个单元的地址,就可以用指针运算符来找出该单元的值。
第2个回答  2011-11-05
你的疑问恐怕是出在二维数组里吧
例如:int a[3][5],*p;
p=a;
上面的第一行表示定义一个指针变量p,下面一行表示p指向数组a的首行
a+1表示下一行首地址
*p等价于*(p+0)等价于p[0] 表示p[0]行首地址
p[0]+1表示p[0][1]的地址 p[0]+2表示p[0][2]的地址
而*(p[0]+2)表示p[0][2]这个元素的值
第3个回答  2013-01-07
p[]是一维数组,p[][]是二维数组
*p 是一维数组参数,*p[]是二位数组参数,来自:求助得到的回答
第3个回答  2013-01-07
*p[ ]=**p=p[][]
相似回答