繁体   English   中英

C ++中的反向数组

[英]Reverse Array in C++

我已经成功反转了一个一维数组,但是当我删除内容时,它先打印出内容,然后再打印其他数字。

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;
}

是那些地址吗? 有人可以说出为什么要打印出来吗? 谢谢。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM