我知道'\ 0'的ASCII值是0,而ASCII值0是0x30,但是当我尝试使用printf打印它们的ASCII值时,我得到相同的输出:
printf("\'\\0\' : %d\n", '\0');
printf("\'\\0\' in hex : %x\n", '\0');
printf("0 : %d\n", 0);
printf("0 in hex: %x\n", 0);
Run Code Online (Sandbox Code Playgroud)
输出:
'\0' : 0
'\0' in hex : 0
0 : 0
0 in hex: 0
Run Code Online (Sandbox Code Playgroud)
为什么?
Sha*_*baz 11
ASCII字符'0'与数字不同0.您0在第二对printfs 中打印整数而不是'0'.
试试这个:
printf("'\\0' : %d\n", '\0');
printf("'\\0' in hex : %x\n", '\0');
printf("'0' : %d\n", '0');
printf("'0' in hex: %x\n", '0');
Run Code Online (Sandbox Code Playgroud)
此外,您不需要'在字符串内转义.也就是说,"'"很好,你不需要写"\'"