int array [10] = {1,2,0,3}。我如何发现这里有4个元素?我知道如何找到数组的大小

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

我尝试了这段代码。您可以看到问题是空元素为零。因此,我尝试进行检查,但事实是我可以将0作为元素。


int main()
{
    int array[10] = {1, 2, 0, 3, 4};

    printf("%d\n", sizeof(array)/ sizeof(*array)); // This is the size of array

    int i = 0;

    while(array[i] != 0  && i < 10) {
        i++;
    };

    printf("%d\n", i);

    return 0;
}```
c arrays sizeof
2个回答
0
投票

首先将数组设置为输入范围之外的数字。就像一个负数。

for(i = 0;i < 10;i++)
    array[i] = -1;

或将其设置为INT_MAXINT_MIN


0
投票

你不能。 int array[10]将始终创建一个由10个元素组成的数组,您不能问编译器已分配了哪些元素。

您可以做的是int array[] = {1, 2, 0, 3, 4},然后编译器将为您推断元素的数量,您将获得sizeof(array)/ sizeof(*array) == 5

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