c语言int(*)p和int *p,int *p[4]与int (*p)[4]有什么不同?

int *p[4]与int (*p)[4]有什么不同?

int *p[4]与int  (*p)[4]有什么不同?

前者是数组指针 这毫无疑问,听说后者是指向数组的指针,为什么?

搜索更多相关的解决方案:

int

----------------解决方案--------------------------------------------------------

因为下标操作符优先级高于解引用操作符,故

前者是指针数组,数组中的每一个元素都是指向int型元素的指针。

后者定义了一个指向包含4个int型元素的指针。

[[italic] 本帖最后由 lonmaor 于 2007-12-8 16:28 编辑 [/italic]]

----------------解决方案--------------------------------------------------------

因为*P[4]中P是个数组然后再与*组合,它是一个有四个元素的指针数组,而后者是先与*组合,所以后者是一个指向四个地址的数组的指针!

----------------解决方案--------------------------------------------------------

备注: “[ ]”的优先级比“*”高。“( )”的优先级比前两者都高。

[bold]int[/bold]  * p[4];        //  指针的数组,类型为数组 p 有 4 个元素类型为 int *

[bold]int[/bold]  (* p)[4];      //   p 指针 int [4]  ,即 p 指针 4 个 int类型

----------------解决方案--------------------------------------------------------

int  * p[4];     定义指针数组P,由4个指向整形数据的指针元素组成.

int  (* p)[4];      P为指向含4个元素的一维数组的指针变量

----------------解决方案--------------------------------------------------------

我不同意二楼的说法,我和他恰恰恰相反,我觉得是这样的,不知道大家对我的看法有什么不同吗?

----------------解决方案--------------------------------------------------------

原帖由 [bold][underline]kongxiangge22[/underline][/bold] 于 2007-12-8 16:26 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1138256&ptid=191126][/url]

我不同意二楼的说法,我和他恰恰恰相反,我觉得是这样的,不知道大家对我的看法有什么不同吗?

写错了。。绕来绕去把我也绕迷了。已修正

----------------解决方案--------------------------------------------------------

回复 4# 的帖子

int  (* p)[4];      //   p 指针 int [4]  ,即 p 指针 4 个 int类型

请问怎么使用这个指针?

我尝试*p=1;编译器报错了!

warning C4047: '=' : 'int [4]' differs in levels of indirection from 'const int '

----------------解决方案--------------------------------------------------------

*(*p)=1;

这样就不会有错了.

----------------解决方案--------------------------------------------------------

回复 9# 的帖子

不理解 忘赐教

----------------解决方案--------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值