若有int x,则(x+1)++是一个合法的c语言表达式吗,为什么
答案:3 悬赏:80 手机版
解决时间 2022-01-01 03:08
- 提问者网友:寂寞撕碎了回忆
- 2021-12-31 22:11
若有int x,则(x+1)++是一个合法的c语言表达式吗,为什么
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-12-31 22:43
不是合法的。
这个涉及到左值的概念。x+1的值是一个临时变量,不是左值,是不可以使用后自增运算的。
同理(x++)++也不合法。(++x)++是合法的。因为前自增返回左值,后自增返回的是一个临时变量,只能作为右值。
就像您不能使用x+1=2这样的表达式一样。
这个涉及到左值的概念。x+1的值是一个临时变量,不是左值,是不可以使用后自增运算的。
同理(x++)++也不合法。(++x)++是合法的。因为前自增返回左值,后自增返回的是一个临时变量,只能作为右值。
就像您不能使用x+1=2这样的表达式一样。
全部回答
- 1楼网友:迷人又混蛋
- 2022-01-01 00:51
不是合法的。
这个涉及到左值的概埂掸囤赶塬非剁石筏将念。x+1的值是一个临时变量,不是左值,是不可以使用后自增运算的。
同理(x++)++也不合法。(++x)++是合法的。因为前自增返回左值,后自增返回的是一个临时变量,只能作为右值。
就像您不能使用x+1=2这样的表达式一样。
- 2楼网友:渊鱼
- 2021-12-31 23:41
不合法,因为x只定义了没有初始化,++操作需要一个已经初始化的变量。至于是左加还是右加是有区别的,右加返回一个加之前的变量,左加返回一个加之后的值。(x+1)++和++(x+1)调试都会报错,需要左值,但是x++和++x在调试时不会报错,只是在运行时内存泄露。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯