[英]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.