奇怪的是c ++中的循环语法

问题描述 投票:2回答:1

我在counting sort上阅读Geeksforgeeks算法。我已经理解了算法但我在下面的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

c++ algorithm for-loop syntax
1个回答
5
投票

arr[i]评估一个角色。如果它是一个空字符,那么循环将终止。你可以把它想象成

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

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

n4659-§5.3/ 3:

[...] null字符(分别为null宽字符),其值为qazxswpoi [...]

© www.soinside.com 2019 - 2024. All rights reserved.