int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 19:24:08
int a =3; int b=++((++a)--); 这样计算b的值为什么不对啊
无论在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