int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/17 03:20:13
int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
![int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊](/uploads/image/z/8687590-70-0.jpg?t=int+a+%3D3%3B+int+b%3D%2B%2B%28%28%2B%2Ba%29--%29%3B+%E8%BF%99%E6%A0%B7%E8%AE%A1%E7%AE%97b%E7%9A%84%E5%80%BC%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%AF%B9%E5%95%8A)
无论在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
C语言(至少C99之前,C11的话我不是很清楚)中自增自减运算符的操作对象都必须是左值,并且无论运算符是前缀还是后缀,其表达式的结果都是右值
所以如果这是段C代码你会发现两个errors
error C2105:'--' needs l-value
error C2105:'++' needs l-value
但是C++(C++没有系统学习过,只是自学,所以不敢很肯定,要是有说错,请哪位大牛更正)中的规定是
后自增运算和后自减运算的结果为右值表达式,先自增运算和先自减运算的结果为左值表达式
所以如果这段是C++代码,只会有一个error
error C2105:'++' needs l-value
int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
#include int max(int a,int b,int c){\x05a=a>b?a :b ;\x05retu
#include int b=3; int fun(int *a) { b+=*a; return(b); }
有如下程序 int runc(int a,int b) { return(a+b);} main( ) { int x=
#include int func(int a,int b) { int c; c=a+b;return c; } ma
int a = 20;int b = 10;交换 a,b 的值
1两道java计算题:若int a=3,int b=5,int c=9,请计算下列表达式的值1:(a+b>c)&(b>3
#include void main( ) { int a=3,b=5; int *p,*q; void f1(int
int a,b; b = a >>
#include int a=3,b=5; max (int a,int b) {int c; c=a>b?a:b; r
下列程序的输出结果是 int b=2; int func(int *a) { b += *a; return(b);}
#includeint a(int x);int b(int y);int main(){int m,n;n=6;m=a