memset函数用法精解
1.基本介绍:
2.函数原型:
3.常见错误:
#include<stdio.h>
#include<string.h>
int main()
{
char a[5];
int i;
memset(a,'1',5);
for(i=0;i<5;i++)
{
printf("%c ",a[i]);
}
printf("\n");
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
int a[5];
int i;
memset(a,1,5); /*如果这里改成memset(a,1,5*sizeof(int))也不可以,因为memset按字节赋值*/
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
int a[5];
int i;
memset(a,1,20); /*如果这里改成memset(a,1,5*sizeof(int))也不可以,因为memset按字节赋值*/
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
就是对a指向的内存的20个字节进行赋值,每个都是用ASCII为1的字符去填充的,转为二进制后,1就是00000001,占一个字节。一个int元素是4字节,合在一起就是00000001 00000001 00000001 00000001 ,就等于16843009,就完成了对一个int元素的赋值了。
#include<stdio.h>
#include<string.h>
int main()
{
int a[5]={1,4,3,5,2};
int i;
printf("清零前:\n");
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
memset(a,0,5*sizeof(int)); /*注意这里与上面的程序不同*/
printf("清零后:\n");
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
int a[5]={1,4,3,5,2};
int i;
printf("重新赋值前:\n");
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
memset(a,1,5*sizeof(int)); /*注意这里与上面的程序不同*/
printf("清零后:\n");
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
9879



被折叠的 条评论
为什么被折叠?



