C 中初始化数组和不初始化数组有什么区别?

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

我创建了一个代码,它将输出您为每个数字输入 -1 的次数。 我试图用 int count[10]; 来声明和 int count[10]={0};。然而,声明时和初始化时都会产生正确的结果。 你能告诉我初始化为 0 和不初始化有什么区别吗?

#include <stdio.h>
int main(){
    
    int count[10];
    int i,num;

    while(1){
        scanf("%d", &num);
        
        if(num==-1){
            break;
        }

        if(num>=0 && num<=99){
            if (num<10){
                count[num]++;
            }
            else{
                count[num/10]++;
                count[num%10]++;
            }
        }
    }

    for(i=0; i<10; i++){
        printf("%d : %d\n", i,count[i]);
    }
    return 0;
}
arrays c initialization
1个回答
0
投票

如果不初始化,则值

count[0]
(等)不确定。您的代码之所以有效,是因为当您运行它时,它发生为零,但这并不能保证(除了
static
变量)。

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