如何使用指针显示数组中的反转值?

问题描述 投票:0回答:1

我正在通过 Udemy 课程自学 C++,现在感谢一些好的建议,我正在使用《C++ Primer》一书。

我将向您展示我的代码之一。请给我关于我的编程之路的任何建议,以及为什么它不起作用。它不使用指针以相反的方式显示值。

#include <iostream>
using namespace std;
using std::cin;
using std::cout;
using std::endl;

 
void reverse_array (int *arr, int size)
{
    int *start = arr;  
    int *end = arr + size -1;

    while (start < end)
    {
        int temp = *start;
        *start = *end;
        *end = temp;
        start ++;
        end --;
    }
}

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

    reverse_array (arr,size);

    cout << reverse_array << endl;
}
c++ arrays pointers
1个回答
0
投票

这是我对您的代码问题的回答。 在您的代码中,当您使用 [cout <<"reverse Array" << endl], you are trying to print the address of reverse_array function instead of printing the function has been reversed. To print index in an array, you have to use a "for-loop" and print every single index.

调用reverse_array函数时,仅传递arr和size参数,不传递&符号来指示数组的地址。因此,在reverse_array函数中,arr参数被复制,改变arr的值不会影响main函数中的数组。要以所需的方式反转数组,您需要使用 &arr[0] 或 arr 传递数组的地址。

© www.soinside.com 2019 - 2024. All rights reserved.