此代码将打印一串字符:
const char* aString = "This is a string";
const char* ptrString = aString;
while(*ptrString)
{ std::cout << *ptrString;
ptrString++;
}
我还是个新手。从我到目前为止所学到的,while循环总是在括号内有条件,如while(x <10)或其他东西。我只是不明白为什么这种情况下的while循环只有* ptrString作为它的条件。它究竟意味着什么?有人可以向我解释一下吗?
答案 0 :(得分:1)
while(*ptrString)
*ptrString
为空字符时停止。随着ptrString
在ptrString++;
中递增,最终*ptrString
将指向空字符。
您可以将循环体简化为
std::cout << *ptrString++; // Ideal use of post-fix operator
虽然..
答案 1 :(得分:1)
当指针到达字符串的末尾时,它会找到字符串结尾的字符串,其值为0,在转换为bool时计算结果为false。然后循环结束。