左值问题?

YHeng 2002-08-11 04:10:14
int a=3;
++(a++); a++不是左值 (摘自钱能《C++程序设计教程》)
是不是因为a++的意思是必须在该语句执行完毕后,a自加1,而++是提前加1,当两者同时出现时会产生矛盾,所以a++不是左值,希望各位大侠不吝赐教?
...全文
104 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Klose 2002-08-11
  • 打赏
  • 举报
回复
++不管是左置还是右置都必须直接接变量,不能够接表达式。
如:++(a+3)也是错的。
sywj115447 2002-08-11
  • 打赏
  • 举报
回复
钱能的书上应讲的很明白。
a++与++a的最大区别是:++a不会产生临时变量。
如:i=a++
实际上在c++规则中表示为:
int jamp=a;
int i=jamp;
int a=a+1;

而i=++a则是:
int a=a+1;
int i=a;

这就是它们的区别。

69,373

社区成员

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

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