在给定的程序中:
它显示的输出结果如下:
63 55 0 --?-- --7-- ----
我可以理解它将\0后的前两个字符(\077)从八进制转换为十进制,但是有人能解释一下为什么是2个字符吗?为什么不是1个、3个或其他数量?
请解释其背后的逻辑。
int main() {
char *p = "\0777";
printf("%d %d %d\n",p[0],p[1],p[2]);
printf("--%c-- --%c-- --%c--\n",p[0],p[1],p[2]);
return 0;
}
它显示的输出结果如下:
63 55 0 --?-- --7-- ----
我可以理解它将\0后的前两个字符(\077)从八进制转换为十进制,但是有人能解释一下为什么是2个字符吗?为什么不是1个、3个或其他数量?
请解释其背后的逻辑。
char *p = "\7777";
,前面没有0。 - pmg