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

2024-11-15 08:52:16
推荐回答(5个)
回答(1):

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

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

示例:

#include 

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;

回答(2):

[ ]是变址运算符,p[ ]即计算p的地址并找出此地址单元中的值。如果此地址单元里存放的是另一个单元的地址,就可以用指针运算符来找出该单元的值。

回答(3):

你的疑问恐怕是出在二维数组里吧
例如: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]这个元素的值

回答(4):

p[]是一维数组,p[][]是二维数组
*p 是一维数组参数,*p[]是二位数组参数,

回答(5):

*p[ ]=**p=p[][]