c - 为什么 "char"变量中可以存储多个字符?

标签 c char

这是一个练习测验问题:

int main()
{
    char ch = '\060';
    printf("%d\n", ch+1);
    return 0;
}    // What is the output?

答案是49

我认为它是 49,因为 0 在 ASCII 表中是 48,48 + 1 = 49。是 60 被忽略/忽略(ch 是一个字符变量,而不是字符串变量)?另外,我一开始认为 \0 代表一个空字符,所以我认为输出是 1 (空字符的值为 0 ASCII 表)。

最佳答案

'\060'是单个字符,其中060是八进制数字,其十进制值确实是48

C11 §6.4.4.4 Character constants

octal-escape-sequence:

\ octal-digit
\ octal-digit octal-digit
\ octal-digit octal-digit octal-digit

关于c - 为什么 "char"变量中可以存储多个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32274832/

相关文章:

c - 如何使用 C 中仅接受字符的函数显示整数?

c++ - char 变量是否总是表示为取消引用的 char*[2] 和 {'x' ,\0}?

c++ - 通过#include 将文件内容分配给 char 数组

c - 为什么我需要重新打开文件才能获取其最新数据?

c++ - Windows 上有用的开源库/项目

c - 如何在 Asterisk 中将 PostgreSQL 数据库时间戳更新为空?

c - 为什么使用 "designated initializer"初始化 C union 会给出随机值?

c++ - 使用 char *[] = "something"时如何输出单个字符

c++ - 如何在 C++ 中测试公钥/私钥对?

c++ - 将 BSTR 转换为 char*