这是一个练习测验问题:
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/