📅  最后修改于: 2023-12-03 14:50:16.696000             🧑  作者: Mango
在C++中,我们可以使用memset函数来初始化二维数组。该函数可以将一段内存空间中的所有字节设置成指定的值,常用于初始化数组和清空内存。下面我们将会讨论如何使用memset初始化二维数组。
void *memset(void *destination, int value, size_t num);
下面我们创建一个3行4列的二维数组,初始值均为0。首先需要包含头文件cstring。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const int row = 3;
const int col = 4;
int a[row][col];
memset(a, 0, sizeof(a));
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
输出结果:
0 0 0 0
0 0 0 0
0 0 0 0
我们也可以创建并初始化一个全是1的二维数组。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const int row = 3;
const int col = 4;
int b[row][col];
memset(b, 1, sizeof(b));
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << b[i][j] << " ";
}
cout << endl;
}
return 0;
}
输出结果:
16843009 16843009 16843009 16843009
16843009 16843009 16843009 16843009
16843009 16843009 16843009 16843009
可以看到,所有的值都不是1。这是因为memset函数将1视为一个无符号字符的ASCII码,因此每个整数都被设置为了一个无符号字符的ASCII码。