考虑下面的C程序。
#include
int main(void)
{
int a = 'd';
printf("%d\n", a);
/*OUTPUT - 100 (ASCII Code for character d)*/
int b = 'dd';
printf("%d", b);
/*OUTPUT - 25700 (Explanation in detail given below)*/
return 0;
}
输出 :
100
25700
我们可以很容易地猜测到’d’的输出为100,因为100是字符’d’的ASCII值。
让我们考虑下线
int a = 'dd'
(%d,a)打印25700作为输出
01100100 01100100(二进制100100)
假设int为2个字节,则起始字节由第一个字符’d’占用,第二个字节由第二个字符’d’占用。因此,整个二进制文件涉及0110010001100100,即2 ^ 14 + 2 ^ 13 + 2 ^ 10 + 2 ^ 6 + 2 ^ 5 + 2 ^ 2 = 25700。
现在猜测以下代码的输出。
#include
int main(void)
{
int b = 'de';
printf("%d", b);
return 0;
}
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。