int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
答案:1 悬赏:80 手机版
解决时间 2021-05-02 18:41
- 提问者网友:末路
- 2021-05-02 06:15
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-05-02 07:01
无论在C还是C++中,这都是一个非法的表达式
C语言(至少C99之前,C11的话我不是很清楚)中自增自减运算符的操作对象都必须是左值,并且无论运算符是前缀还是后缀,其表达式的结果都是右值
所以如果这是段C代码你会发现两个errors
error C2105:'--' needs l-value
error C2105:'++' needs l-value
但是C++(C++没有系统学习过,只是自学,所以不敢很肯定,要是有说错,请哪位大牛更正)中的规定是
后自增运算和后自减运算的结果为右值表达式,先自增运算和先自减运算的结果为左值表达式
所以如果这段是C++代码,只会有一个error
error C2105:'++' needs l-value
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯