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

 我来答
拥云庄主
2013-01-07 · TA获得超过2501个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:407万
展开全部

*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;

huclogin
2013-01-07 · TA获得超过170个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:118万
展开全部
[ ]是变址运算符,p[ ]即计算p的地址并找出此地址单元中的值。如果此地址单元里存放的是另一个单元的地址,就可以用指针运算符来找出该单元的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xdh0817
2011-11-05 · TA获得超过101个赞
知道答主
回答量:74
采纳率:0%
帮助的人:54.1万
展开全部
你的疑问恐怕是出在二维数组里吧
例如: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]这个元素的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hemiao3078
2013-01-07
知道答主
回答量:24
采纳率:0%
帮助的人:11.3万
展开全部
p[]是一维数组,p[][]是二维数组
*p 是一维数组参数,*p[]是二位数组参数,
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虽有如无
2013-01-07
知道答主
回答量:40
采纳率:0%
帮助的人:13.6万
展开全部
*p[ ]=**p=p[][]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式