for(int i = 0; a[i]; i++) 是什么意思?

What does for(int i = 0; a[i]; i++) mean?

本文关键字:i++ 是什么 意思 int for      更新时间:2023-10-16

我有一个string a. for 循环for(int i = 0; a[i]; i++)中的条件a[i]是什么意思?

在本例中 "for(int i = 0;a[i];i++)",您的循环将保持其执行,直到其元素之一为 null 元素。始终当您看到此表达式时,它始终与检查元素是否为 null 的含义相同,以便停止循环。

但是,该循环具有未定义的行为,因为如果索引 i 将达到最大数组的大小。您可能会收到该类型的运行时错误:

由于超出数组大小范围或您正在尝试访问内存的空空间而出错。

我希望我的回答,适合你的问题。

for(int i = 0; a[i]; i++)

for(int i = 0; a[i] != 0; i++)具有相同的含义,意思是"进入循环,直到元素a[i]0;如果a是一个字符串,那么这意味着"进入循环,直到a[i]指向字符串终止字符

但请注意,C++提供了其他遍历字符串字符的方法,例如for (auto c : a) { cout << c << endl; }

变量i被初始化为0,然后递增,直到a[i]是(或转换为)假的,即a[i]==0.因此,i循环访问字符串中的所有字符,直到第一次出现。对于通常以 null 结尾的字符串,这等效于

for(auto c:a)

它正在逐个搜索字符串指针数组的字符。但是,由于它在代码中定义为字符串,因此会发生编译时错误。