C語言陣列的所有元素初始化成相同的值

2022-06-13 02:09:23 字數 733 閱讀 1995

這個問題一直困擾了我很久,我向來都用for來控制置-1;因為我不會用memset(つ﹏⊂)我是個蒟蒻。今天終於學會了一點皮毛,趕緊記錄一下

方法一:

簡單粗暴,快捷有效。for迴圈一點點的置1,這個方法一直有效,沒有限制條件,除非你不知道大小。

方法二:

建立陣列的時候同時完成初始化,如果是靜態建立陣列那麼只能將陣列初始化為0;

1int arr[10] = ;

如果是動態建立陣列的化就可以用stdlib裡的calloc進行記憶體的動態分配 ,開闢空間後預設置0,

不過方法二只能置0。

方法三:

用string裡的memset函式來處理,但由於其是對每乙個位元組賦值的所以擁有四個位元組的int,只能past,但是因為按位元組賦值對0和-1沒有影響所以可以用來置0或-1;

為什麼0和-1可以呢,因為-1的bcd碼為32個1,0呢則為32個0,所以擷取成雖然是按位元組存寫的但是int讀取時都是相同的值所以無所謂了。

1就別想,它的bcd碼是31個0乙個1……這個誤差,能飛到天上去。

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

大概就是醬紫,(因為只會這些,只能寫道這裡了)

學習不易,諸君共勉!

C語言陣列初始化

陣列宣告時必須指明陣列元素的資料型別以及陣列中元素個數,計算機才可以為陣列預留出足夠的空間。陣列大小必須為常量。define size 10 int a 12 int b 100 c size 可以在宣告時通過初始值列表實現陣列元素初始化 int a 3 如果初始值列表中提供的元素個數少於陣列元素個...

C語言陣列初始化

wchar t wname 128 char cname 256 我感興趣的是 1.這種賦值的結果。2.這種形式是否符合標準編碼規則?我找到了如下資料,可能有助於對這個知識點的掌握。初始化值的個數可少於陣列元素個數。當初始化值的個數少於陣列元素個數時,前面的按序初始化相應值,後面的初始化為 0 全域...

c語言 陣列的初始化

指標陣列的初始化語法 我們在這定義乙個 int型別的 指標陣列 name int name name陣列的初始化通過乙個數字列表實現,列表中的每個數字賦值給陣列name中相應位置的元素,第n個數字存貯在儲存器中的某個位置,指向他的指標儲存在name n 中。但是我們需要注意的事,由於上述宣告中沒有指...