memset函数
Posted 你有多努力,就有多幸运!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memset函数相关的知识,希望对你有一定的参考价值。
1 //程序范例 2 #include <stdio.h> 3 #include <string.h> 4 5 int main(void) 6 { 7 int i, j, k; 8 char buffer[] = "Helloworld\n"; 9 printf("Buffer before memset:%s", buffer); //输出结果Buffer before memset:Helloworld 10 memset(buffer,‘*‘, strlen(buffer)); 11 printf("Buffer after memset:%s\n", buffer);//输出结果Buffer after memset:*********** 12 13 //该处的ch可为int或者其他类型,并不一定要是char类型 14 int array[5] = {1,4,3,5,2}; 15 for(i=0; i<5; i++) 16 printf("%d ", array[i]); //输出结果1 4 3 5 2 17 printf("\n"); 18 19 memset(array, 0, 5*sizeof(int)); 20 for(j=0; j<5; j++) 21 printf("%d ", array[j]); //输出结果0 0 0 0 0 22 printf("\n"); 23 24 memset(array, 1, 5*sizeof(int)); //使用memset是按字节赋值,每个数组元素的值实际上是0x01010101即十进制的16843009 25 for(k=0; k<5; k++) 26 printf("%d ", array[k]); //输出结果16843009 16843009 16843009 16843009 27 printf("\n"); 28 return 0; 29 } 30 /* 31 *因memset是对字节进行操作,以字节为单位就是对array指向的内存的4个字节进行赋值,每个字节用数1去填充,转为二进制后,1就是00000001, 32 *一个int元素是4字节,合一起是0000 0001,0000 0001,0000 0001,0000 0001,转化成十六进制就是0x01010101,就等于16843009,完成对一个int元素的赋值 33 *所以用memset对非字符型数组赋初值是不可取的! 34 */
本文参考链接:
以上是关于memset函数的主要内容,如果未能解决你的问题,请参考以下文章