C++ for循环参数中title[i]的作用是什么?
C++ for循环title[i]参数作用解答
你贴出的代码如下:
char title[] = "Computer"; for(int i=0; title[i]; i++){ cout<<title+i<<endl; }
你原本的认知是正确的:for循环的第二个位置确实是循环条件表达式,title[i]放在这里属于合法的条件写法,作用是判断是否遍历到了C风格字符串的末尾,原理如下:
- 你定义的
title是C风格字符串,这类字符串默认会在末尾添加一个ASCII值为0的终止符\0,用来标识字符串结束 - C/C++语法规则中,所有非0的整数值都会被隐式转换为布尔值
true,0值会被隐式转换为布尔值false- 循环过程中
title[i]指向有效字符时,对应的ASCII码都是非0值,条件判定为真,循环继续执行 - 当
i递增到指向末尾的\0时,title[i]取值为0,条件判定为假,循环直接终止
- 循环过程中
这种写法本质是title[i] != '\0'的简写,是C/C++遍历C风格字符串时的常用编码习惯。
这段代码的运行效果是每次从字符串的第i位开始输出直到末尾,最终会依次输出Computer、omputer、mputer……最后一行输出r。
内容的提问来源于stack exchange,提问作者Vinil Mokhade
相关产品推荐
相关产品推荐

