繁体   English   中英

在C ++中奇怪的for循环语法

[英]strange for loop syntax in c++

我正在阅读Geeksforgeeks上的counting sort算法。 我已经了解了算法,但是下面for loop语法出现了问题。

for(int i=0; arr[i]; i++) {
 ++count[arr[i]];
 }

在这里, arr[]是一个char数组,而count[]是一个integer数组。

我已经尝试使用以下代码,但是它什么也没做:

 for(int i =0; "c";i++){
    cout<<i;
}

请帮助我了解这种for loop

arr[i]计算为一个字符。 如果为空字符,则循环将终止。 您可以将其视为

for(int i=0; arr[i] != '\0'; i++) {}

在C ++中,除0以外的任何值都将计算为true '\\0'编码为0 ,因此当arr[i]的值变为'\\0'时,其值将为false

n4659-§5.3 / 3:

[...]空字符(分别为空宽字符),其值为0 [...]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM