11.11 晚上 char类型的变量不加引号进行初始化或赋值的情况

发布于 10 天前  16 次阅读


1. 字符的 ASCII 值

在 C 语言中,字符可以用其 ASCII 值来表示,而不需要引号。例如:

char c = 65;  // 65 是字符 'A' 的 ASCII 值

在 C 语言中,ASCII 值通常以十进制表示,但实际上,C 语言支持多种进制表示法,包括十进制、十六进制和八进制

//前面有一篇文章,好像是直接说以十进制表示,那其实是格局小了,抱歉

2. 使用 putchar 和 printf

putchar函数和printf函数可以使用字符的 ASCII 值直接输出:

putchar(65);  // 输出 'A'
//毕竟是char
printf("%c", 66); // 输出 'B'

//注意要用%c

3. EOF

EOF 是一个宏定义,通常在 <stdio.h> 头文件中定义。它的值通常是 -1,并不是一个字符,而是一个整型常量,用于表示“文件结束”或“读取错误”的状态

因此,getchar() 返回 EOF 是为了表示读取操作的结果,而不是返回一个字符

所以c = getchar()) == EOF不用加引号,也是因为EOF实际等价于一个整型(C语言通常为-1),对编译器而言,既然你不加引号,那不就是他的十进制/八进制/十六进制数吗?也确实如此,ASCII码中对应的EOF的十进制值就是-1

这就是为什么EOF不加引号的原因

届ける言葉を今は育ててる
最后更新于 2024-11-12