我了解到'\0'的ASCII值为0,而数字0的ASCII值是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);
输出:
'\0' : 0
'\0' in hex : 0
0 : 0
0 in hex: 0
为什么?
'\0'
实际上是NUL
。NULL
是一个指针。(虽然在C语言中没有区别,但从概念上讲它们是不同的) - Shahbaz