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

C语言统计数组元素出现次数时出现E0142错误如何解决?

E0142错误排查与解决方案

报错根因

你遇到的E0142报错是参数类型定义错误触发的:

E0142 expression must have pointer-to-object type but it has type "int"

函数第一个参数被你定义为const int array,属于普通int类型变量,只有指针、数组类型的变量才支持[]下标访问操作,因此你写array[card]时编译器无法识别该操作,抛出对应错误。

修复方案

第一步:修正参数类型

将第一个参数的类型修改为const int* array或const int array[],两种写法在函数参数场景下完全等效,均表示传入int数组的首地址,支持下标访问。

第二步:修复其他语法&逻辑错误

你当前的代码还有两处隐藏问题:

  • return Count语句写在for循环内部,第一次循环就会直接返回结果,无法遍历统计整个数组
  • 函数体缺少闭合的大括号,会触发编译语法错误

修正后的完整代码

int numOfCardInHand(const int* array, int size, int targetCard) {
    int Count = 0;
    for (int card = 0; card < size; card++) {
        if (array[card] == targetCard) {
            Count += 1;
        }
    }
    return Count;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:03