我正在通过 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;
}
这是我对您的代码问题的回答。 在您的代码中,当您使用 [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 传递数组的地址。