条件字符串的C++[i]
C++ for condition string[i]
>我在谷歌上发现了这样的东西:
for(int i=0;someString[i];++i){
//code to do
}
但我无法弄清楚 someString[i] 是什么意思。它不应该是布尔表达式,那么编译器如何知道何时结束循环?也许这是一个微不足道的问题,但我对 c++ 很陌生。
谢谢你转发
如果someString
是一个数组,包含任何可以转换为bool
的数组,那么访问其元素是一个条件。例如,如果它是一个char
数组,那么所有元素栏' '
的计算结果都将true
。例如:
#include <iostream>
int main()
{
char someString[] = {'h', 'e', 'l', 'l', 'o', ' '};
std::cout << std::boolalpha;
for (auto c : someString)
std::cout << bool(c) << std::endl;
}
您的循环将在遇到第一个虚假元素时停止。
假设someString
是char*
或const char*
,当它到达终止的NUL字节时,这个循环停止。
这是因为每个称为someString[i]
的char
都是一个数字,当且仅当数字为 0 时,数字才会转换为 false
。NUL 为 0。