发掘了 C Primer Plus书中的几处个人认为的错误!
很久之前就听说 C Primer Plus 这本书不错,最近陆陆续续的看了一部分,无意发觉了两处个人认为的错误:1、如295页 程序清单11.10下面的第三行程序解析: “记住,++ 比*的优先级高。 ” 对C运算符有点印象的可能就知道 ++ 和 *都是单目运算符 属于同等优先级,只是他们的结合方向都是自右向左。
2、如297页介绍 strlen()函数的例程:
void fit(char *string, unsigned int size)
{
if(strlen(string) > size)
*(string + size) = '\0';
}
上面程序假如在调用函数里这样调用: fit("abcdefg", 3); 这样会发现程序会修改字符串常量,而这样的结果会导致访问内存错误!