我正在阅读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
。
答案 0 :(得分:5)
arr[i]
得出一个字符。如果为空字符,则循环将终止。您可以将其视为
for(int i=0; arr[i] != '\0'; i++) {}
在C ++中,除0
以外的其他任何值均取值为true
。 '\0'
编码为0
,因此,当arr[i]
的值变为false
时将得出'\0'
。
n4659-§5.3 / 3:
[...]空字符(分别为空宽字符),其值为
0
[...]