这是一个练习测验问题:
int main()
{
char ch = '\060';
printf("%d\n", ch+1);
return 0;
} // What is the output?
答案是
49
。我认为它是
49
,因为ASCII表上的0
是48
,并且48 + 1 =49。60
是否被忽略/忽略(ch
是一个char变量,而不是一个字符串)?另外,我以为\0
首先表示一个空字符,所以我以为输出是1
(空字符在ASCII表上的值为0
)。 最佳答案
'\060'
是单个字符,其中060
是八进制数字,其值的确是十进制48
。
C11§6.4.4.4字符常量
octal-escape-sequence:
\ octal-digit
\ octal-digit octal-digit
\ octal-digit octal-digit octal-digit