gpt4 book ai didi

c++ - for 循环中的 Str[i] 自动 bool 值检查

转载 作者:行者123 更新时间:2023-11-28 02:41:30 24 4
gpt4 key购买 nike

printArrayWithoutLength(char str [])
{
for(int i=0;str[i];i++)
cout<< str[i]<< endl;
}

为什么上面的方法有效?我没有对长度使用 bool 值检查。

最佳答案

在 C 语言中,任何不是直接 bool 表达式的条件(即,除 bool 值之外的其他类型并且不涉及比较运算符 [ > , < , == , != , etc]) 将自动比较为不等于零,因此您可以将代码重写为:

for(int i=0;str[i] != 0;i++)

for(int i=0;str[i] != '\0';i++)

for(int i=0; 0 != str[i]; i++)

具有完全相同的结果和生成的完全相同的代码。只需或多或少地输入一些内容,并且根据对 C 或 C++ 的熟悉程度,您可能会发现或多或少地比较容易依次阅读。

当然,这只适用于以 nul 字符(值为零的字符)结尾的传统 C 风格字符串。还有其他存储字符串的方法,如果字符串实际上不是以零字符结尾,则此代码无论以哪种形式自然都不起作用。

关于c++ - for 循环中的 Str[i] 自动 bool 值检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com