C语言笔记:(3*a)++为什么不允许

3*a它执行后的结果是*不可寻址*的, 也就是说, 它是*常量*, 而++是要把它的内容自加1, 是内容, 但是a*3以后, 它已经不再是a了, 所以++找不到要寻址的变量, 自然就无法保存.
从逻辑上讲也不通:
把a的三倍加上保存起来, 保存的数据存哪? a里?不对啊, 它说的是a的三倍加1, 那和a就没关系.
所以你应该这样(a*=3)++, 所有赋运算符返回的值都是可寻址的, 所以++可以用.

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒