You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中如何统计数组内已填充的有效元素数量

统计数组已填充位置数量的实现方法

首先明确前提:C 语言原生静态数组本身不存储「总容量」「已填充元素数」这类元数据,要实现统计必须先约定空位置的标识值,保证该标识值不会出现在你的有效元素范围内即可。

以你给出的示例场景为例,有效元素均为非0正整数,我们可以约定0作为空值标识(C 语言中静态数组未手动初始化的位置默认会被赋值为0,刚好匹配需求),实现逻辑如下:

  • 从数组第一个元素开始遍历,每遇到一个非空值就计数+1
  • 遇到第一个空值时终止遍历,此时的计数值就是已填充的位置总数

对应实现代码:

#include <stdio.h>

int get_filled_count(int arr[]) {
    int count = 0;
    // 约定空值为0,遍历到第一个空值就停止
    while (arr[count] != 0) {
        count++;
    }
    return count;
}

int main() {
    int a[10] = {10,20,30,40,50,60};
    printf("%d", get_filled_count(a));
    return 0;
}

运行上述代码输出结果为6,符合要求。

注意事项:如果你的业务场景中有效元素可能包含0,可以替换为其他不会用到的值作为空值标识,比如INT_MIN,填充数组时将未使用的位置统一设为该标识即可。如果数组所有位置都有可能被有效元素填满,建议额外维护数组总容量参数,避免遍历越界。

内容的提问来源于stack exchange,提问作者Aritra Roychowdhury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:15:02