为什么表达式 (a++) += (a++); 错误,而 (++a) += (a++); 正确
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/19 20:30:43
为什么表达式(a++)+=(a++);错误,而(++a)+=(a++);正确为什么表达式(a++)+=(a++);错误,而(++a)+=(a++);正确为什么表达式(a++)+=(a++);错误,而(
为什么表达式 (a++) += (a++); 错误,而 (++a) += (a++); 正确
为什么表达式 (a++) += (a++); 错误,而 (++a) += (a++); 正确
为什么表达式 (a++) += (a++); 错误,而 (++a) += (a++); 正确
其实这是一个很深邃的问题.在c/c++中规定:左操作数必须是一个左值.
a++在c/c++中的实现是:
{
int tmp=a;
a=a+1;
return tmp;
}
这里的tmp为一个临时变量,是一个右值,对它赋值毫无意义.
++a在c/c++中的实现是:
{
a=a+1;
return a;
}
a为一个左值,可以赋值.
就效率而言++a应比a++的效率要高,因为a++要产生临时变量.
建议lz在网上找一些左值和右值的知识来看看,这也不是一两句话讲清的,理解这个对你有很大的帮助.
若有条件表达式“x?a++:b--”,则等价于表达式x的表达式是“x!=0”为什么?
表达式“a
表达式a
为什么表达式 (a++) += (a++); 错误,而 (++a) += (a++); 正确
为什么a%(5.0)是错误的表达式?
若有定义:int a; 且表达式 a的值为0 表达式 =0 的值 为什么为1
表达式(6!=8)&&('A'
设int a;,则表达式a=2,4,a+1的值是( ) 为什么
如有定义float a[10]; 可定义表达式a=a+1.为什么不对?
如有定义float a[10]; 可定义表达式a=a+1.为什么不对?
化简逻辑表达式(A+B)(A+B)的结果是( )为什么A * A = A
已经定义int a;则执行表达式a=11,a+1,a++后a的值是?为什么?
int a=13,表达式~a
若有定义语句:int a=5;,则表达式:a++的值是?.a++不是等于a+1嘛?那为什么表达式的值等于5啊?
条件表达式(M)?(a++):(a--)为什么与M!=0等价
a=-1,a+=(a++)-a表达式的值?
c语言if语句中的逻辑表达式 (a!=1)为什么不成立?c语言if语句中的逻辑表达式(a!=1)为什么不成立?
若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:还有为什么