char c;
c = '2';
printf("%d\n",c);
所以这个问题来自我的测验,它询问什么是显示。答案是50,我尝试使用程序,但为什么它是50?不是2或其他什么?
答案 0 :(得分:4)
撇号表示“字符文字”,即'2'
不是整数2,而是字符2,即用于表示单个数字2的字形。
您使用%d
中的printf()
打印此值,这意味着“有符号整数”,因此您可以获得字符的整数值,通常称为“代码点”(或者,通常称为“代码点”) “ASCII值”)。
我认为您的代码不是100%干净,因为char
可能是unsigned
,您应该在调用中强制转换为(int)
,因为int
是%d
{{1}}期望的是什么。
答案 1 :(得分:3)
您正在打印char '2'
作为int '%d'
,因此打印的是ASCII value