memset赋值是按照字节进行赋值的,所以通常用于赋值0,进行初始化操作。
1. memset(m_arr, 0, sizeof(m_arr))
#include <stdio.h>
#include <string.h>
int main(void)
{
int m_arr[] = { 1,2,3,4,5,6,7,8,9 };
int num = sizeof(m_arr) / sizeof(int);
int sizeInt= sizeof(int);
printf("Int类型数据占:%d字节\n", sizeInt);
for (int i = 0; i < num; i++)
{
printf("m_arr[%d]=%d\n", i, *(m_arr + i));
}
printf("********************\n");
memset(m_arr, 0, sizeof(m_arr));
for (int i = 0; i < num; i++)
{
printf("m_arr[%d]=%d\n", i, *(m_arr + i));
}
return 0;
}
运行结果:
2. memset(m_arr, 1, sizeof(m_arr))
#include <stdio.h>
#include <string.h>
int main(void)
{
int m_arr[] = { 1,2,3,4,5,6,7,8,9 };
int num = sizeof(m_arr) / sizeof(int);
int sizeInt= sizeof(int);
printf("Int类型数据占:%d字节\n", sizeInt);
for (int i = 0; i < num; i++)
{
printf("m_arr[%d]=%d\n", i, *(m_arr + i));
}
printf("********************\n");
memset(m_arr, 1, sizeof(m_arr));
for (int i = 0; i < num; i++)
{
printf("m_arr[%d]=%d\n", i, *(m_arr + i));
}
return 0;
}
运行结果:
可以看到是按字节进行赋值的。
3. memset(m_arr, 2, sizeof(m_arr))
#include <stdio.h>
#include <string.h>
int main(void)
{
int m_arr[] = { 1,2,3,4,5,6,7,8,9 };
int num = sizeof(m_arr) / sizeof(int);
int sizeInt= sizeof(int);
printf("Int类型数据占:%d字节\n", sizeInt);
for (int i = 0; i < num; i++)
{
printf("m_arr[%d]=%d\n", i, *(m_arr + i));
}
printf("********************\n");
memset(m_arr, 2, sizeof(m_arr));
for (int i = 0; i < num; i++)
{
printf("m_arr[%d]=%d\n", i, *(m_arr + i));
}
return 0;
}
运行结果:
再次验证是按照字节进行赋值的