c语言中x=4x*=y=z=4什么意思?

   更新日期:2024.05.22
语言连等赋值,从右向左执行。1,z=4; (结果:z=4)2,y=z; (结果:y=4)3,x*=y; (结果:x=16)4,x=4x; (结果:x=64)

这个代码片段最后的输出结果是x=16。
首先z被赋值为4,接着z又被赋值给y,这样y的值也变成了4,最后执行x=x*y,代入x=4、y=4,即可得x=16。

C语言连等赋值,从右向左执行。
1,z=4; (结果:z=4)
2,y=z; (结果:y=4)
3,x*=y; (结果:x=16)
4,x=4x; (结果:x=64)

  • 18796196646 :c语言中x=4x*=y=z=4什么意思?
    童紫亨1282 :答:语言连等赋值,从右向左执行。1,z=4; (结果:z=4)2,y=z; (结果:y=4)3,x*=y; (结果:x=16)4,x=4x; (结果:x=64)
  • 18796196646 :关于C语言计算问题
    童紫亨1282 :答:输出是2080——由于*=的优先级比+低,所以x+=3+2;就是x*=(3+2);也就是x+=5;,所以第一个printf(%d",x);输出20。又由于x*=y=z=4;中同样*=的优先级比=低,所以x*=y=z=4;等价于x*=(y=z=4);,也就是等价于x+=4;,前面已算得x==20了,所以这里x*=4;就是x=20*4==80...
  • 18796196646 :c语言中x*=y=z=4什么意思?
    童紫亨1282 :答:等价于x=x*(y=z=4),4赋值给z,z=4这个赋值表达式的值是4,再赋值给y,括号中表达式值是4,与x值相乘的结果再赋值给x
  • 18796196646 :C语言中X*=(y==(Z=4))是什么意思其中Y等于0
    童紫亨1282 :答:X*=0 也就是 X=X*0=0 于是 执行后 X=0 Y=0 Z=4
  • 18796196646 :C语言{int x=40,y=4,z=4; x=y==z; printf("%d\n",x); x=x==(y-z...
    童紫亨1282 :答:第一次x = 1 ,x = y==z,y==z是真的,值为1 第二次x = 0 ,x=x==(y-z),x = 4,y-z=0,为假,值为0
  • 18796196646 :C语言 int y=4;z=4;则表达式x=y==z的值为?
    童紫亨1282 :答:从右往左 y==z为真返回1 所以相当于x=1
  • 18796196646 :int x=2 x*=y=z=4 求x值
    童紫亨1282 :答:说明z是x的引用。y=4!y=0为假。z=2*y=2*4=8。即x=8。C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明:1、如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。例8.2的主函数中未对函数s作...
  • 18796196646 :c语言 #include<stdio.h> main() { int x=1,y=4,z=4;
    童紫亨1282 :答:第一个为x=(y==z);printf("%d\t",x);因为y与z者是4,所以y==z的值为1,把1赋给x,所以x的值为1 第二个为x=(x==(y=z));printf("%d\n",x);先是把z的值赋给y,y==z的值为4,再把4与x比较,因为x的值是1,所以不相等,值为0,把0赋给x,所以x的值为0 ...
  • 18796196646 :c语言 这题应该怎么做,大一新生
    童紫亨1282 :答:x*=3+1; 即x*=4(加法优先级高于复合赋值优先级),也即 x=x*4; 而x++是先用完x的值再自增,因此此时x的值8被输出.然后x自增为9.x+=y=z=5; 赋值运算符是右结合,也就是从右向左计算,z被赋值为5,然后y被赋值为表达式z=5的值,这个表达式的值就是5,同理x+=(y=z=5), 表达式...
  • 18796196646 :c语言程序中 x=4;z=--x*--x*--x;输出的z=?
    童紫亨1282 :答:4, 因为自左向右运算,先进行“--x*--x“运算,此时,在"--x*--x"中,又先进行"--x"运算,所以x=2,所以--x*--x = 4,然后进行“--x*4"运算,此时,x = 1;所以,z = 1 * 4 = 4;
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网