C语言中*p[ ]是什么意思
7个回答
展开全部
*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;
}
展开全部
[ ]是变址运算符,p[ ]即计算p的地址并找出此地址单元中的值。如果此地址单元里存放的是另一个单元的地址,就可以用指针运算符来找出该单元的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的疑问恐怕是出在二维数组里吧
例如: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]这个元素的值
例如: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]这个元素的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p[]是一维数组,p[][]是二维数组
*p 是一维数组参数,*p[]是二位数组参数,
*p 是一维数组参数,*p[]是二位数组参数,
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*p[ ]=**p=p[][]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询