我已经成功地颠倒了一维数组,但是当我对内容进行cout时,它会输出内容然后一堆其他数字。
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;
}
那些地址吗?有人能说出它为什么要打印出来吗?谢谢。
答案 0 :(得分:1)
修改for
中的main
循环,使其中的条件部分变为i < ROW
并修改for
中的flipRow
循环,以便那里的条件部分读取i < row/2
。 sizeof
运算符以字节返回数组的大小。您的数组中有四个元素,它们是整数类型,在您的平台上是4个字节,因此您对sizeof
的调用返回16。