C C 對陣列賦初值的方法memset,fill

2021-10-01 22:24:44 字數 766 閱讀 5868

函式格式:memset(陣列名,值,sizeof(陣列名));
使用memset需要引用string.h

值只能是0或者-1,因為memset是按位元組賦值,要麼全0,要麼全1

(其實賦值其他也可以,只是計算比較複雜,

int是4個位元組,memset是按位元組賦值,

如果賦值1,

memset(a,1,sizeof(a));
會出現這樣:

00000001 00000001 00000001 00000001

四個位元組,每個位元組值為1,

但是這樣整體的值就是16843009

0的二進位制補碼全0

-1的二進位制補碼全1

所以最好就是取0或者-1

int a[10];

memset(a,-1,sizeof(a));

fill函式存在於 algorithm標頭檔案下,需要引用此標頭檔案

fill可以對陣列或容器對某一區間賦任意值;

fill(a,a+5,233);
fill複雜度為線性,即相當於寫了乙個for

for(int i=0;i<5;i++)a[i]=233;
所以最好優先考慮memset進行賦值。

c c 結構體賦初值的小技巧

今天看到專案中對自定義結構體初始化方式有點陌生,特在此羅列一下可用的結構體初始化的方式。對結構體 struct a有幾種初始化方式 第一種 struct a a 第二種 struct a a 第三種 struct a a1 linux核心喜歡用第一種,使用第一種和第二種時,成員初始化順序可變。第四種...

c 陣列賦初值 C 陣列的常用操作方法小結

1.陣列的宣告和賦值方式 int myarray int myarray int myarray new int 4 2.多維陣列的宣告 int myarray new int 2,3 int myarray 獲取多維陣列元素,可以使用 myarray 0,1 2 3.鋸齒陣列的宣告 int mya...

c 陣列賦初值 c語言給陣列賦值的3種形式

c語言給陣列賦值的3種形式 在c語言中,對陣列進行賦值的三種形式 1 通過迴圈的形式 即 陣列名 下標 對陣列的元素進行依次賦值 include int main int i int a 10 for i 0 i 10 i scanf d a i for i 0 i 10 i printf d a ...