初学C语言,几道编程题不太能理解,求解答

#include <stdio.h> void main() { char x=(char)0xFF; printf ("%d\n", x--); } 这题的答案是-1,完全不能理解……x不是等于16进制的FF吗…… 转换出来不对啊,完全不能理解T_T; 2. #include <stdio.h> ... #include <stdio.h> void main() { char x=(char)0xFF; printf ("%d\n", x--); } 这题的答案是-1,完全不能理解……x不是等于16进制的FF吗…… 转换出来不对啊,完全不能理解T_T; 2. #include <stdio.h> void main() { char s[100]; int c,i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s\n",c,i,s); } 在执行该程序时,输入:1~2~3456789?(~表示空格,?表示回车),则输出结果是_______。 答案是1,2,3456789 后面的的2,3456789我可以理解,但是前面的1我想不通……c不是定义为字符型变量吗,而且在输出是也规定了以字符型输出,所以我觉得应该去ASCII中查表,找到对应的1的字符。T_T,怎么也想不通。

第1个回答  2020-01-01
其实不是你想的这样,第一个问题你可以把最后一句替换为“printf("%c\n",x);”看一下就知道了,0xFF代表的是空格,换算成int是-1。第二个问题更简单,你的存储方式不取决于你申请空间时的数据类型,而是你输入时的数据类型,也就是说当你以字符类型输入c时,c就被保存为字符1了。
相似回答
大家正在搜