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

C++ for循环报expression must have pointer-to-object type错误原因咨询

报错原因分析

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

该编译报错的触发原因如下:

  • 数组类型定义不匹配:你声明的v是int v[100],属于一维int数组。执行v[i]操作后得到的结果是单个int类型的数值,而C++中只有数组、指针类型支持[]下标运算符操作,你对int类型的v[i]直接再加[j]做二次下标访问属于语法非法操作,这就是报错的直接原因。
  • 输入逻辑存在冗余问题:当前的双层循环输入逻辑中,内层j循环会对同一个v[i]重复赋值m次,最终每个v[i]只会保存对应内层循环最后一次输入的数值,之前的输入都会被覆盖,即使不存在下标访问错误,也无法正常存储二维表格类数据。

如果需要实现n行m列的二维数据存储与遍历,可参考如下修正代码:

int n, m, v[100][100]; // 改为二维数组,注意数组尺寸需大于实际输入的n、m值
cin >> n >> m;

// 输入逻辑对应改为对二维数组的单个元素赋值
for(int i = 0; i < n; i++){
    for(int j = 0; j < m; j++){
        cin >> v[i][j];            
    }
}

// 遍历访问逻辑可正常执行
for(int i = 0; i < n; i++){
    for(int j = 0; j < m; j++){ 
        int nr = v[i][j];
        // 此处添加自定义处理逻辑
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:42:03