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

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

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

这道题首先要理解一个概念,就是-1在继续计算机中是以补码形式存储的,亦即在计算机中存储的值为二进制形式1111 1111 1111 1111 1111 1111 1111 1111(假定为32位系统)。当printf格式输出字符串为%d时,系统会将存储的值以有符号数整数形式输出,...

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

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

D、 0 0 4 k=(++a

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

第一:看程序执行: 初值a=1,b=2 1

第一次循环 结束 a = -1, b = 1; 第二次循环开始时 a = -1,b =1; 第二次循环结束 a = 0, b = 2; 第三次循环开始 a = 0, b =2; 结果a=0了,while判断此时的a不满足条件了,然后a++开始执行,a = 1 因为条件不满足,循环体不会执行++b,所以b的值...

printf(“%d\n”,(a=a+1,a+6,b+2)); ,号运算符,输出最后一个表达式即b+2的值即可

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