这是一个练习测验问题:

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


答案是49

我认为它是49,因为ASCII表上的048,并且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

09-11 10:09