x,y都是整型变量,x=1,y=2,printf("%d",x+y,x++,y++)的值为什么是5
结果是3
x=1,y=2;printf("%d",x+y,x++,y++);怎么计算
计算的步骤如下:第一步:y++后y=3 第二步:x++后x=2 第三步:x+y=3+2=5 第四步:输出,因为 printf("%d",x+y,x++,y++); 只输出 x+y的值,所以最后的输出是5 验证代码如下:include <stdio.h>int main(){int x=1,y=2;printf("%d",x+y,x++,y++);}验证结果如下:
x,y 都是int, x++=y++ 为什么错?
语法错误,x++等价于x=x+1,也就是说,它是个表达式,而C规定不能对表达式赋值,所以出错。x+=y++ 倒是可以,它等价于x=x+y; 已赞过 已踩过< 你对这个回答的评价是? 评论 收起
...int X=1,y=2,z=3; x+=y+=z; printf("%d",(x<y?X++;y++)) } 输出...
x=1,y=2,z=3 x+=y+=z 是自右运算的,y=y+z=5 此时y=5 x+=y x=x+y=1+5=6 然后判断x<y 很明显x>y 所以条件是假值,取y++ 这里注意一下,要求输出的是y 不是y的值 所以最后结果是5 但如果要求输出y y的值就是6 ...
为什么(x=1,y=2,y++,x++,x+y)与(x=1,y=2,++y,++x,x+y)结果一样?
第一,两个逗号表达式,结果都应该是其中的最后一个表达式的值,也即x+y的值 第二,既然只要知道x+y的值,那就看在这之前x的值是多少,y的值是多少 第三,x的值开始是1,自加了一次,变成2,y同理,所以两个结果一样 第四,如果你存在异议,问题也只可能出在++在前还是在后的问题 ++在前...
int x,y; X=y=2; y=x++1; printf("%d%d"x,y) 求答案
题目有错。x++1不符合语法,请检查题目 (同时printf("%d%d",x,y);少了逗号)如果是x++,结果是:3 2 解释:x++是先传值,再累加 如果是x+1,结果是:2 3 解释:原来x是2,y是2,y=x+1即y=2+1=3,x的值不变 如果希望输出结果是3 3的话,第三句应当为y=++x;
int x,y,z; x=y=1; z=x+y,y++,++y; printf(%d,%d,%d\\n,x,y,z);
是1,3,2
c语言中定义int型变量和float型变量,会使y=++x*++x的结果不同,这是什么...
由此分析,对于整型数‘++’操作的是同一个内存地址,而对于浮点型数则是直接把运算结果赋值给栈空间。以下是程序。\/\/testplus.c include <stdio.h> include <stdlib.h> include <string.h> int main(int argc,char **argv){ int x_i=1,y_i;float x_f=1.0,y_f;if(memcmp("int",argv...
...x=1,y=2,z;,则执行语句z=x>y?x++:y--后,变量z的值
include<stdio.h> main(){int x=1,y=2,z;z=x>y?x++:y--;printf("%d %d",z,y);} x>y,则z=x++否则z=y--表达式y--的值先取y值作为表达式的值,即z=2.再y值减1
若有定义:int x,y;则表达式(x=2,y=5,x++ ,x +y++ )的值是
表达式中 第一个x++若要输出则x等于2,第二个x+y++中的x等于3(这里x已经完成自增运算)而此时y++还取原来的值,即y等于5,所以x+y++的值为3+5等于8,根据逗号表达式的原则,整个式子的值为8,此后则x=3,y=6(这时y才完成自增运算)...