我正在通过Bjarne Stroustrup的阅读C++的一个示例,我很难理解一个早期的示例。在下面的代码中,while循环用于将指针递增到C样式字符串,直到它遇到空字符。我没有得到的是为什么指向一个空字符会导致指针采取nullptr的值。它似乎应该是一个非常好的指针,恰好指向一个空值。我会感到惊讶,如果它是一个作家错误,因为这本书包含在这里stackexchange的reccommendations:The Definitive C++ Book Guide and List通过指针递增来遍历C字符串
int count_x(char∗ p, char x)
// count the number of occurrences of x in p[]
// p is assumed to point to a zero-terminated array of char (or to nothing)
{
if (p==nullptr) return 0;
int count = 0;
for (; p!=nullptr; ++p)
if (∗p==x)
++count;
return count;
}
它不会;该代码示例是错误的 – 2014-10-07 05:51:49
本书中的示例不同。循环是'while(* p)'。你有哪个版本? – imreal 2014-10-07 05:56:01
那么,我有一个版本,我发现通过谷歌搜索“* C++ * pdf游览”(第一个结果)。我猜对了,尽管有趣,但它声称会被复制到2014. – agd 2014-10-07 06:03:09