条件字符串的C++[i]

C++ for condition string[i]

本文关键字:C++ 字符串 条件      更新时间:2023-10-16

>我在谷歌上发现了这样的东西:

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;
}

您的循环将在遇到第一个虚假元素时停止。

假设someStringchar*const char*,当它到达终止的NUL字节时,这个循环停止。

这是因为每个称为someString[i]char都是一个数字,当且仅当数字为 0 时,数字才会转换为 false。NUL 为 0。