我制作了一个计算矩阵的简单程序,代码如下:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int result[3] = {0,0,0};
int matrixc[3][6] = {
{0,0,0,0,0,1},
{0,0,0,1,1,1},
{1,0,1,0,0,1}
};
for(int x=0;x <3;x++)
{
for(int y=0;y < 6;y++)
{
result[x] += (matrixc[x][y] * pow(2,6-y));
}
cout << result[x] << endl;
}
}
输出是我想要的,它是:2,14,and 82
. 但是,当我删除整数数组中的初始化时result
:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int result[3]; //deleted initialization
int matrixc[3][6] = {
{0,0,0,0,0,1},
{0,0,0,1,1,1},
{1,0,1,0,0,1}
};
for(int x=0;x <3;x++)
{
for(int y=0;y < 6;y++)
{
result[x] += (matrixc[x][y] * pow(2,6-y));
}
cout << result[x] << endl;
}
}
我得到了奇怪的输出:1335484418,32618, and 65617
.
您想解释一下为什么带有和不带有初始化的数组之间的输出会有所不同吗?
实际上,我不想初始化所有result
数组,因为我有大量的矩阵数据。
如果我std::vector
不初始化所有result
数组就可以使用吗?