【发布时间】:2010-10-03 01:41:33
【问题描述】:
我对下面的 C 代码 sn-ps 有点困惑:
printf("Peter string is %d bytes\n", sizeof("Peter")); // Peter string is 6 bytes
这告诉我,当 C 编译双引号中的字符串时,它会自动为空终止符添加一个额外的字节。
printf("Hello '%s'\n", "Peter");
printf 函数知道何时停止读取字符串“Peter”,因为它到达了空终止符,所以 ...
char myString[2][9] = {"123456789", "123456789" };
printf("myString: %s\n", myString[0]);
这里,printf 打印所有 18 个字符,因为没有空终止符(如果不去掉 9,它们将不适合)。 C 不是在变量定义中添加空终止符吗?
【问题讨论】: