c - char 数据类型中的撇号

标签 c arrays char structure apostrophe

char c; 
c = '2';
printf("%d\n",c);

所以这个问题来 self 的测验,它问的是显示器是什么。答案是50,我用程序试过了,为什么是50?不是 2 或者什么?

最佳答案

撇号的意思是“字 rune 字”,即'2'不是整数2,而是字符2,即用于表示单个数字2的字形。

你可以在printf()中使用%d打印这个值,这意味着“有符号整数”,这样你就得到了字符的整数值,通常称为“代码点”(或者,传统上,它是“ASCII 值”)。

我认为您的代码不是 100% 干净,因为 char 可能是 unsigned,您应该在调用中转换为 (int)需要明确的是,因为 int%d 所期望的。

关于c - char 数据类型中的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26217717/

相关文章:

c - 如何将char值转换为二进制并分别显示每一位?

将 MIPS 系统调用转换为 getchar();或 scanf();在C中

java - 将 FocusListener 添加到 2D JTextField 数组

c - C 中的指针和数组 - 极其困惑

Javascript:将字符串视为数组在本地工作但不在 IE 中部署

Java println(charArray + String) 与 println(charArray)

c++ - 带有 char 值的 if 语句

c - stdout 和 STDOUT_FILENO 的区别

c - 在 C 中从键盘读取 3 个字符串,但打印时只得到两个字符串?

c - 被标记化的 fgets() 字符串是否能够被索引到字符中? :line[0], 错误:段