jmfs.net
当前位置:首页>>关于c语言问题:设x=4,y=(++x)+(++x);那么y的值等于的资料>>

c语言问题:设x=4,y=(++x)+(++x);那么y的值等于

首先++x这种东西,在同一句中最多使用一次,否则会出问题(涉及编译原理,讲不清楚) 此外,y=x++;相当于y=x;x+=1;即先执行完当前的一个语句(以逗号、分号为结束符的语句) 最后,自加、自减运算符在同一句内,永远不要使用两次及以上。 不要尝...

我把你的这个小程序运行了一下,结果确实是12,当我输出x的时候发现x的值是6 。 所以我是这样理解的,++x的作用是让数字x先自加一再在语句中被使用。 而y=(++x)+(++x); 这个语句中x被自加了两次,而只有一个语句,也就是说在运行到分号的时候 x...

x++是后置++,是先取x的值,参与运算,然后再把x的值加1 (x++)+y;等价于x+y x=2,y=4,x+y的值为6 如果是(++x)+y;,则值为7

int a = 7; float x = 2.5, y = 4.7; x+a%3*(int)(x+y)%2/4? 这个主要是考数据类型优先级及其转换的. (unsigned)char/short->int->unsigned int->long->unsigned long->long long->unsigned long long->double..... 另外float一律转换成double

#include main() { int x=4,y=25,z=2; z=(--y/++x)*z--; printf("%d\n",z); } 结果是7并不是8 别忘了你最后的得出的结果z--是被执行了的。所以z=8之后还要再减1 所以z=7 如果你定义个其他变量,比如d. 让d=(--y/++x)*z--; 的时候d是等于8的 而z...

只是等于1的,我是经过turbo c2.0编译过的,答案应该没什么问题的,程序是: main() { int x,y,z,k; x=3;y=4;z=5; k=0; k=!(x+y)+z-1&&y+z/2; printf("%d",k);} 答案为什么会等于1呢?那是因为运算级别的问题,根据运算级别,实现算括号里面的先...

x=1,y=1 z=x++ 把x给z,所以z=1,之后x++,所以x=2; y++ 原来y=1,现在变成2 ++y 前面y=2,现在变成3. 所以,最后: x=2 y=3, x=1

这是逗号表达式,运算顺序为最后一个式子x+y的结果,y=++该式等价于y=y++,就是y自加1,因而y的值变为6,而x值没有改变,因而x+y的值为8

开始x和y都赋值为2 t=++x||++y注意到后边这个是 劝或”,因此当程序执行了++x时,判断为真(不为0即为真)后边的++y就没有执行,如果你把x的值改为-1时,再执行t=++x||++y后,y就变为3了 因此结果是2

x=y=5, 这句完了之后x=5,y=5 x++*x++ 第一个x还是5,第二个x是6,所以这个表达式的值是30 --y*--y 第一个y是4,第二个是3,所以这个表达式的值是12

网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com