我遇到了一个for循环,其中条件是参数(p)本身。循环何时停止?我的C++书中没有这种情况。
for (PDFS *p = e->prev ; p ; p = p->prev) {
push_back (p->edge);
edge[p->edge->id] = vertex[p->edge->from] = vertex[p->edge->to] = 1;
}
最佳答案
当p
是NULL
时,循环将停止。在循环中,您无需显式检查条件p !=NULL
或C++ 11中的p != nullptr
。
使用空终止的c字符串时,也会编写类似的代码:
char str[] = "its null-terminated string";
for(size_t i = 0 ; str[i] ; ++i)
std::cout << str[i] << std::endl;
在这种情况下,您无需检查条件
i < strlen(str)
或类似内容。关于c++ - for循环的停止条件是一个单独的指针变量是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9704564/