确定,我在VS2010中测试过,程序很简单的,如下:
#include
#include
using namespace std;
void main()
{
int x=1,y=2;
// ++x=++y;
x++=y++;
cout<<x<<endl;
system("pause");
}
当测试到x++=y++的时候编译不通过,但++x=++y的时候,x的输出值为3
在C语言中,为什么x++=y++是错误的,而++x=++y是正确的?
x++有两个地址,一个是x本身的地址,还有个x+1后的地址,所以它不能作为左值,y++不能赋给一个地址不确定的变量。所以会出错,而++x,只有一个地址,就是x+1后的地址,所以能将y+1后的值赋给它,所以是正确的,楼主应该是没明白前++和后++的意义,多看看教材理解理解。
x,y 都是int, x++=y++ 为什么错?
语法错误,x++等价于x=x+1,也就是说,它是个表达式,而C规定不能对表达式赋值,所以出错。x+=y++ 倒是可以,它等价于x=x+y; 已赞过 已踩过< 你对这个回答的评价是? 评论 收起
C语言z=(x++,y++)与z=(++x,++y)的区别
y++的值先赋给z,然后y自身再加一。++y先自身加一,再赋值给z。前面的x没有用到。
C语言中x++和++x的区别?
C语言中x++和++x的区别如下:x++是在有这个的这个算式中先使用x,再自增1及x=x+1。++x是先自己加1,再使用。用 ' ' 包括起来的都是字符,也就是char型的量,注意是量,不是变量,而x则就是变量。比如你有一个char型的变量x,你想把x的值赋值为x,就这样写 x='x'; 将字符'x'赋值...
C语言中y=x++ y=++x的结果为什么不同
前置自加 先自加 再赋值。后置自加 先赋值再自加。所以,y=x++ , y值是自加前的。y=++x; y值是自加后的。二者差1.
C语言求大神!c=x++||y++,为什么最后的xy不等?
因为这是||或运算,第一个为真的话,第二个就不执行了 所以因为x为真所以y++就不会执行 最后就得到x=2,y=1,c=1了
在c++中,++x||++y是什么意思
这是一个逻辑表达式, 判断 ++x 的值 或者 ++y 的值 是否有一个为真,如果有,则逻辑表达式++x||++y为真,否则为假。而且当 ++x 为真后,表达式将不会判断 ++y 的值。即++y不会执行。如果要输出x,y的值时,就会很明显了。
C语言里的++
其中X++,Y++相当于X=X+1,Y=Y+1 X--, Y--相当于X=X-1,Y=Y-1 --X, --Y相当于X=X-1,Y=Y-1 但如果这些表达式赋值给另一个变量则就有变化了:比如M=X++,N=++X这两个表达式就不一样,这其实是优先级的问题 如M=X++(++在后的优先级低于赋值符号的优先级),则先赋值,再自加...
c语言中x++和++x的区别?
C语言中x++和++x的区别:一、答案首行 在C语言中,x++和++x都是对变量x进行自增操作,但它们之间存在明显的区别。主要体现在操作顺序和结果上。二、详细解释 操作顺序不同:x++被称为后置自增运算符,意味着先返回变量x的当前值,然后再执行自增操作。例如,如果代码中有表达式y = x++,则会先...
程序z=x++,y++,++y;怎么算
z=x++:这个是首先把x的值赋给z,然后x再自加1。y++:这个是先用后加,比如:int y=2;printf(“%d”,y++);这个就运行结果的就是2,但如果再在后面加一个printf(“%d”,y);这个时运行的结果就是3了(因为在显示第一个之后就已经用了y,所以接着就自加1,再运行的时候就是3 了)...