C++中的反向数组

Reverse Array in C++

本文关键字:数组 C++      更新时间:2023-10-16

我已经成功地反转了一个一维数组,但当我编辑内容时,它会打印出内容,然后打印出一堆其他数字。

4
3
2
1
-858993460
-858993460
4
-858993460
-1021245226
12384668
3697177
1
14484784
14501672
-1021245434
0
Press any key to continue . . .

我不知道它为什么要打印那些多余的数字。以下是我的源代码:

#include <iostream>
#include <array>
using namespace std;
void flipRow(int array[], int row) {
    int temp;
    for (int i = 0; i < sizeof(array)/2; i++) {
        //cout << "Hi" << endl;
        temp = array[i];
        array[i] = array[row-1];
        array[row-1] = temp;
        row--;
    }
}
int main() {
    const int ROW = 4;
    int array[ROW] = { 1, 2, 3, 4 };
    flipRow(array, ROW);
    for (int i = 0; i < sizeof(array); i++) {
        cout << array[i] << endl;
    }
    system("pause");
    return 0;
}

这些是地址吗?有人能说出为什么要把它们打印出来吗?非常感谢。

main中修改您的for循环,使其条件部分变为i < ROW,并在flipRow中修改for循环,使其中的条件部分读取i < row/2sizeof运算符返回以字节为单位的数组的大小。您的数组中有四个元素,它们的类型为integer,在您的平台上为4字节,因此对sizeof的调用返回16。