为什么我的数组代码反转不能正常工作

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

嘿,下面是我想出的代码,有些人可以解释一下它的数组反转有什么不对

#include <iostream> 
using namespace std;

int main() {
    int arr[4] = {1,4,3,2};
    int size = sizeof(arr)/sizeof(arr[0]);
    int n = size - 1;
    cout << size << endl;
    cout << n << endl;
    for (int i = 0; i<size; i++)
    {
        arr[i] = arr[n - i];
        cout << arr[i] << endl;
    }
    return 0;
}
c++ arrays reverse
1个回答
1
投票

你已经回答了自己的问题。但实际上,不是从数组的两端交换值,而是在开头用最后的值覆盖值,一旦到达中间点,就会开始将这些值复制回到后半部分。

正如你写的那样:arr[0] = arr[3];但后来arr[3] = arr[0];这只是一个漫长的方式,两次颠倒阵列的后半部分。

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