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

如何用指针实现数组逆序值显示?求代码问题排查及编程路径建议

代码问题排查

你的reverse_array函数逻辑是正确的,数组已经被成功反转了,问题出在输出环节:

cout << reverse_array << endl;

这行代码输出的是reverse_array函数的内存地址,而非反转后的数组内容。因为reverse_array是void类型函数,没有返回值,你需要手动遍历数组打印每个元素。

修正后的main函数代码如下:

int main ()
{
    int arr [] {1,2,3,4,5,6,7};
    int size = sizeof(arr)/ sizeof(arr[0]);

    reverse_array (arr,size);

    // 遍历数组打印元素
    for (int i = 0; i < size; ++i) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

运行后就能正确输出7 6 5 4 3 2 1。

C++自学路径建议

结合你用Udemy课程+《C++ Primer》的学习方式,给你几个实用建议:

  • 课程与书本互补:Udemy课程通常偏实践演示,适合快速上手;《C++ Primer》是权威教材,侧重原理和细节,学完课程对应的章节后,再翻Primer的内容做深入理解,比如学指针时,把Primer里关于指针操作、数组与指针关系的内容吃透。
  • 边学边练,重视调试:每个知识点学完后,一定要写小代码验证(比如这次的反转数组),写完后不要只看编译结果,要调试看变量、内存的变化,像这次的输出错误,调试时就能发现根本没访问数组元素。
  • 针对性刷题巩固:针对当前学的知识点找编程题练习,比如学数组和指针时,可以练反转数组、数组去重、指针遍历字符串这些题目,强化对内存操作的理解。
  • 循序渐进接触核心概念:学到面向对象编程(类、继承、多态)时,这是C++的核心,Primer里的讲解很细致,要反复琢磨,同时写小型项目(比如简单的图书管理系统、计算器)来落地这些概念。
  • 后期深入标准库:当基础扎实后,重点学STL(标准模板库),比如vector、string这些容器,以及std::reverse这类算法,对比自己写的实现,理解标准库的设计思路和高效性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:45:06