*(++p)++ and *++++p

waterluo2003 2003-10-22 01:25:56
请问一下
*++++p可以,而*(++p)++就不可以呢,
他们的运算过程是怎么个样呢,不都是自右向左吗?
另外,我在调试*(++p)++ 时,出错信息为:
error C2105: '++' needs l-value
请问中的C2105代表了什么呢?
...全文
72 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
langzi8818 2003-10-22
  • 打赏
  • 举报
回复
这样的问题也研究,服了你了,你怎么不写
+++++++++++++++++++++++++++++++p++++++++++++++++++++++++是多少啊??
geniust 2003-10-22
  • 打赏
  • 举报
回复
up
ttlb 2003-10-22
  • 打赏
  • 举报
回复
搂主确实没必要研究这些问题,对于实际来说,一点用处也没有。
mjfsun 2003-10-22
  • 打赏
  • 举报
回复
这合上次的a=1然后求++a+++a+++a有什么分别吗?浪费时间
ggg82 2003-10-22
  • 打赏
  • 举报
回复
为什么要这样写呀,使用括号标明优先级比什么都强。
liubingqian 2003-10-22
  • 打赏
  • 举报
回复
这种问题不是无聊,是非常无聊、很无聊。有时间琢磨这个还不如睡会儿觉。
scatzr 2003-10-22
  • 打赏
  • 举报
回复
接分,呵呵
bing_huo 2003-10-22
  • 打赏
  • 举报
回复
不能少讨论点这类问题啊 ???
wangbinru 2003-10-22
  • 打赏
  • 举报
回复
*(++p)++中的后置式increment作用的对象是++p的返回值(在执行完++p后消失),
而不是p本身,故在编译的时候会有这样提示。类似的p++++也是非法的,道理和
上面一样。
ttlb 2003-10-22
  • 打赏
  • 举报
回复
*++p++ 被解释为:*(++(p++))
由于p++返回的是临时变量,对临时变量进行 ++ 是错误的
daixinwei 2003-10-22
  • 打赏
  • 举报
回复
呵呵,我只要CSDN分,呵呵
daixinwei 2003-10-22
  • 打赏
  • 举报
回复
你让计算机怎么编译?是按前一个还是后一个,要知道++P和P++的运算优先级是一样的!
daixinwei 2003-10-22
  • 打赏
  • 举报
回复
因为这样写有二义性,即可以是*(++P)++又可以是*++(P++)!
seok 2003-10-22
  • 打赏
  • 举报
回复
哎。。。这可以看作学术问题
实际运用中不可能遇到!
waterluo2003 2003-10-22
  • 打赏
  • 举报
回复
"*(++p)++就不可以呢"
我写错了,改为"*++p++就不可以呢"
ttlb 2003-10-22
  • 打赏
  • 举报
回复
*(++p)++被解释为:*((++p)++)
(++p)++返回的是一个临时指针,在语句执行结束后销毁。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧