【发布时间】:2019-03-27 02:47:06
【问题描述】:
#include <stdio.h>
int main(void) {
int nr = 5;
char castChar = (char)nr;
char realChar = '5';
printf("The value is: %d\n", castChar);
}
如果上面的代码被编译,输出将是:
The value is: 5
但是如果编译下面的代码,控制台将输出值 53 代替。为什么它的打印与打印“castChar”时的打印不同?
#include <stdio.h>
int main(void) {
int nr = 5;
char castChar = (char)nr;
char realChar = '5';
printf("The value is: %d\n", realChar);
}
【问题讨论】:
-
因为
5和'5'不一样。演员阵容甚至没有必要:你可以做char castChar = 5;并获得相同的结果。 -
任何用单引号括起来的字符都将具有该字符的 ascii 值。查阅 ascii 表。
-
我能建议你阅读Markdown editing help吗?您在所有帖子上添加的
pre标签是不必要的,并且会使代码块比需要的大得多。
标签: c