在C语言中,为什么x++=y++是错误的,而++x=++y是正确的?
发布网友
发布时间:2022-05-01 09:23
我来回答
共4个回答
热心网友
时间:2022-06-27 11:20
x++有两个地址,一个是x本身的地址,还有个x+1后的地址,所以它不能作为左值,y++不能赋给一个地址不确定的变量。所以会出错,而++x,只有一个地址,就是x+1后的地址,所以能将y+1后的值赋给它,所以是正确的,楼主应该是没明白前++和后++的意义,多看看教材理解理解。
热心网友
时间:2022-06-27 11:21
x++只能作为右值,而++x既可作为左值又可作为右值。
(意思就是x++只能放在赋值号右面。)
因为x++是把x的值增一,并返回x原来的值,这个值并不储存在变量x的内存地址中,是计算时的一个临时值,因此不能向它赋值。而++x是将x的值增一,并返回x的值,因此可以向这个变量赋值。
热心网友
时间:2022-06-27 11:21
你确定++x=++y也是正确的? 可以把你那个程序拿来看下么,我记得最多只能同等,或者把右边的值赋于x追问确定,我在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
热心网友
时间:2022-06-27 11:22
有可能是+和= 连在一起了,算成+=运算符了吧
在c语言中,变量x,y是否相等可以用表达式x=y来表示吗?如果不能应该怎样表...
不可以 =是赋值运算符,x=y,是将y的值赋值给变量x ==才是判等,应该写成x==y
c语言中x=y;y=x是对的吗?
如果x、y都已经在前面定义过,且最后有分号,即:x=y;y=x;就是对的,否则错了。实际上只需要执行x=y;赋值后,x和y的值就相同了,y=x;属多余。当然,加上的话,语法也是对的。
C语言中If(!x) y ++; 什么意思、特别是iF(!x)
if(x=y)这个是把y的值赋给x,然后判断表达式x=y的值,C语言中,赋值表达式是有值的,它的值是赋值符号右边的值,即x=y的值是y的值,如果y的值为0,那么x=y为假,否则为真 一般来讲,编程过程中if(x=y)这种写法是错误的写法,程序能够通过编译,也能够运行,但是可能会出现意料之外的结果。
C语言中 z=x==y 这个式子怎样理解
由于x是3,y也是3,所以x==y是成立的,所以一般情况下,编译器会将一个非0值传递给z,而1是多数的情况,所以z应该是1
c语言中x<=y什么意思?
X<=y 是个逻辑表达式。逻辑表达式的结果为2中值:真或者假 C语言里面:0为假,其它非0的数都为真 X<=y的意思是当X不大于y的时候就为真,否则为假!
在C语言中,为什么x++=y++是错误的,而++x=++y是正确的?
x++有两个地址,一个是x本身的地址,还有个x+1后的地址,所以它不能作为左值,y++不能赋给一个地址不确定的变量。所以会出错,而++x,只有一个地址,就是x+1后的地址,所以能将y+1后的值赋给它,所以是正确的,楼主应该是没明白前++和后++的意义,多看看教材理解理解。
在c语言中,定义int x=x=y=z=1;是错的,而int x,y,z;x=y=z=1;是正确...
在C语言中,您提到的第一种写法是错误的,而第二种写法是正确的。在C语言中,您可以使用如下语法来定义多个变量:int x, y, z;这样就可以创建三个整型变量x、y、z。然后,您可以使用如下语法来将这三个变量赋值为1:x = y = z = 1;这种写法是正确的。它会将三个变量x、y、z都赋值为1。
C语言求商求余,为什么输出结果是错的?
你的scanf("%d,%d",&x,&y);表示输入的数是用逗号隔开的,实际输入是用空格隔开的。导致x是8,y没有正确读入。
c语言中 x! =y什么意思
C语言函数中,z=x>y?x:y; 这一句是什么意思呢?
这是C中的三元运算,其格式为:x = E ? a : b ;x是用来接收结果的 E是个逻辑表达式 ?: 是一组运算符 a , b是两个备选变量 意思是:当E为真时,返回a,即x=a 。 否则,返回b,即x=b 可以用if语句来替换它,如:if ( x>y )z=x;else z=y;...