程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> memset函數,memset

memset函數,memset

編輯:關於C語言

memset函數,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 */

 本文參考鏈接:

http://baike.baidu.com/link?url=svs6WnjQKV7Ugx3SZke6BvyVy99OOE8I-zn8gSw0HFb-YD-IIcdf2F2h5WGslM4Q4Dog28oXyjX51lnvF2n0Kq

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved