情景分析
- 很多时候会发生这样一种情况,当我们对数组进行了某种处理之后,想将数组中的元素全部初始化为0
- 但是如果数组元素个数太多,用for循环进行初始化会变得很慢,这时就需要c++内置的函数memset进行初始化
代码及注释
初始化数值型数组
#include <iostream>
#define N 10
using namespace std;
int main()
{
int data[N] = { 0 };
memset(data, -1, sizeof(int) * N);
for (int i = 0; i < N; ++i) {
std::cout << data[i] << " ";
}
memset(data, 0, sizeof(int) * N);
std::cout << "\n";
for (int i = 0; i < N; ++i) {
std::cout << data[i] << " ";
}
return 0;
}
初始化字符型数组
#include <iostream>
#define N 10
using namespace std;
int main()
{
char data[N] = { '0' };
memset(data, '5', sizeof(char) * N);
for (int i = 0; i < N; ++i) {
std::cout << data[i] << " ";
}
return 0;
}
结果展示
初始化数值型数组
- 可以看到初始化成功,第一次将全0数组初始化为全-1,第二次将全-1数组初始化为全0
- 目前来说memset支持的初始化数值不多,数值型的有-1和0支持,1这个数值不支持
初始化字符型数组
- 字符型数组可以完美的初始化’5’,‘a’,'A’这类字符,可以放心使用,支持较好
|