csfw.net
当前位置:首页>>关于int a=1; printf("%d, %d, %d\n", a, ++a, a++);结...的资料>>

int a=1; printf("%d, %d, %d\n", a, ++a, a++);结...

未定义行为,结果不可预测且无意义,这种代码是错误的。

1 改正: int a=3; printf("%d\n",(a+=a-=a*a)); 2 输出: -12

D、 0 0 4 k=(++a

输出的是 10 6 因为a++是先将a的值作为表达式a++的值,再执行a=a+1,所以第一个是-(-10);第二个a已经加了1;所以是9+(-3)

011 是八进制的数 不是十进制的 11 八进制 的表示方法是 0开头的 例如 026 03003 012261 都是八进制的 你这个题,打印的时候是 %d 十进制,所以011的八进制要转换成 十进制,即 9 ++a 是先加,在进行运算,所以,先将a 加1 在打印 结果为 10 希...

a=011在前面加了‘0’,于是编译器默认把它当成八进制的数,八进制的“011“相当于十进制的“9”

(a--,b++) 这里括号表示 括号中的是表达式运算,只会返回一个值 (a--,b++) 是逗号运算,先运算a--,然后运算b++,返回的是b原来的值,之后b会再自增1,所以输出为-1,然后b变为0,a也变为0

1、C语言 main() { int a=9; a+=a-=a+a; printf(“%d\n”,a); }最后结果就是-18; 2、赋值语句,从右到左依次运行:那么:int a=9;a+=a-=a+a; 3、相当于:a-=a+a;a+=a;然后相当于:a=a-(a+a);a=a+a; 4、由于a初始化为9:a=a-(a+a)=-a=-9;a=a+a=-9+...

这跟前递增和后递增的运算方法有关系 比如a = 1 ++a 这个表达式返回2 a的值为2 a = 1 a++这个表达式返回1 a的值为2 就是a++ ++在后面返回的是a加之前的值 ++a ++在前返回的是a加之后的值 你上面的例子 printf("a=%d\n",++a); ++a应该返回6 执行...

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