日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

memset函数的操作

發布時間:2024/3/26 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 memset函数的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

memet的解釋
memset函數適用于C/C++語言中
memset()函數的頭文件是<string.h>
memset(void *s,int ch,size_t n); 表達式
memset()不但可以用來初始化字符數組也可以初始化整數數組。
memset()函數的主要作用是為新申請的內存空間,做初始化工作,將某一塊內存中的內容全部設置為指定的值

int arry[10]; //定義一個int類型的數組,數組名為arry,常量表達式為10。memset(arry,0,10*sizeof(int)); //memset (數組名, 初始值, 數組數×類型字節大小) 這個初始化的操作,數組和memset函數的常量表達式可以填寫需求大小。或者直接寫sizeof(數組名) memset(arry,0,sizeof(arry));

代碼1:

#include<stdio.h> #include<string.h>int main() {int arry[10] ;memset(arry, 0, 10 * 4);for (int i = 0; i < 10; i++) {printf("%d", arry[i]);}printf("\n");return 0; }

結果:
注意:當你想這個數組全部初始化時可以把memset(arry,0,10*sizeof(int))改為memset(arry,0,sizeof(arry)),輸出結果一樣。

批量更改數組前面的值
代碼2:

#include<stdio.h> #include<string.h> int main() {int arry[10] ={1,2,3,4,5,6,7,8,9,10};memset(arry, 0, 9*sizeof(int));for (int i = 0; i < 10; i++) {printf("%d ", arry[i]);}printf("\n");return 0; }

結果:(數組前9個值都化為0)
注意:memset(arry,0,9*sizeof(int))是從第一個數組開始賦值的。

字符串數組
代碼3:

#include<stdio.h> #include<string.h>int main() {char str[11] = "HelloWorld";memset(str, '*', sizeof(str));for (int i = 0; i < 11; i++) {printf("%c ", str[i]);}return 0; }

結果:
附加:
memset()用來初始化數組時候,初始化的值一般為 0或者 -1,而字符串數組可以定義很多其他值。因為這與memset()函數是以一個字節為單位進行賦值的,字符串數組單個字符只占據內存一個字節(1 Byte)。

一個字節(1 Byte) = 八個比特(8 Bite)
例如:
memset給數組賦值 0。
00 00 00 00 這時memset一個字節
那么數組int 類型占4個字節,一個數組的值就為 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 。這個int 類型的二進制轉十進制輸出就為 0。
memset給數組賦值 -1。
11 11 11 11 這時memset一個字節
那么數組int 類型占4個字節,一個數組的值就為 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 。這個int 類型的二進制轉十進制輸出就為 -1。
memset給數組賦值 1。
00 00 00 01 這時memset一個字節
那么數組int 類型占4個字節,一個數組的值就為 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 。這個int 類型的二進制0000001000001000001000001轉十進制輸出就為 16843009。

總結

以上是生活随笔為你收集整理的memset函数的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。