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

C++打印数组输出内存地址而非元素值,请问错误原因是什么?

嘿,我来帮你理清楚这个问题~

问题出在哪?

你现在看到内存地址的核心原因是:在C++里,数组名list会隐式转换成指向数组首元素的指针。当你直接用std::cout输出这个指针时,它自然会打印出数组在内存中的起始地址,而不是你期望的元素值。

怎么修正?

你需要明确访问数组的具体元素,也就是用list[i]来输出当前循环里的元素,而不是直接输出数组名。修正后的代码是这样的:

int main() { 
    int list[3]; 
    for (int i=0; i<3; i++) { 
        list[i] = i; 
        std::cout << list[i] << std::endl; 
    } 
}

运行这段代码后,你就能得到想要的输出:

0
1
2

如果你想一次性输出整个数组的所有元素,还可以用C++11及以上支持的范围for循环,代码更简洁:

int main() { 
    int list[3]; 
    for (int i=0; i<3; i++) { 
        list[i] = i; 
    }
    // 遍历数组所有元素并输出
    for (int num : list) {
        std::cout << num << std::endl;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:47