当容量大于元素个数时,我们能找到整数数组中元素的个数吗?

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

我知道,如果我声明一个容量为 10 的数组并只初始化其中的 5 个值,那么剩下的 5 个元素将未初始化并且它们的值将不可预测,这意味着它们可能包含垃圾值。但是,当我编写如下所示的代码时:

#include<stdio.h>

int main()
{
    int arr[10];
    printf("%d\n",arr[3]);
    printf("%d\n",arr[4]);
    printf("%d\n",arr[5]);
    printf("%d\n",arr[6]);
    printf("%d\n",arr[7]);
    printf("%d\n",arr[8]);
    printf("%d\n",arr[9]);
}

所有元素的输出都是 0,这意味着默认情况下未初始化的元素被初始化为 0 而不是垃圾值。但为什么?默认情况下,本地数组初始化为 0 是什么?什么时候未初始化的数组会有垃圾值

因为我们未初始化时它是 0,所以我可以通过简单地使用 for 循环并检查非零数字来找到大小。但这与这个事实相矛盾:-https://stackoverflow.com/questions/10290610/how-can-i-find-the-number-of-elements-in-an-array#:~:text=In%20real %20we%20can%27t%20count%20how%20many%20elements%20are%20store%20in%20array

请帮助我了解这个基本概念。

我希望弄清楚数组的基本原理

arrays c sizeof
© www.soinside.com 2019 - 2024. All rights reserved.