首頁  >  文章  >  後端開發  >  c語言數組如何初始化

c語言數組如何初始化

青灯夜游
青灯夜游原創
2023-01-04 15:36:2623429瀏覽

C語言陣列初始化的三種方式:1、在定義時直接賦值,語法「資料型別arrayName[index] = {值};」;2、利用for迴圈初始化,語法「for (int i=0;i

c語言數組如何初始化

本教學操作環境:windows7系統、c99版本、Dell G3電腦。

C語言陣列初始化的三種方式

#1、在定義時直接賦值

#
int arr1[3] = {0};

使用{0} 的方式最簡潔,一般在定義的時候使用。

2、for 迴圈初始化

int arr2[3];
for (int i = 0; i 

使用 for 迴圈的好處是:可以將每個元素設為不同的值。

3、memset 函數

memset 函數宣告為:

void *memset(void *str, int c, size_t n)

將str 中目前位置後面的n 個位元組(typedef unsigned int size_t )以c 取代並傳回str 。

int arr3[3];memset(arr3, 0, sizeof(int) * 3);

memset 一般使用「0」初始化記憶體單元,通常是給數組或結構體初始化,或清空數組或結構體。

一般如 char、int、float、double 等類型的變數直接初始化即可,如果用 memset 的話反而顯得麻煩。

三種方式的範例程式碼如下:

c語言數組如何初始化

要注意的是:memset函數會以位元組對記憶體區塊進行初始化,所以不能用它將int 數組初始化為0 和-1 之外的其他值。

memset 賦值為-1 或0,最後的結果是正確的:

c語言數組如何初始化

c語言數組如何初始化

##但使用memset賦值為-1和0以外的值,最終的結果並不是期望值。例如賦值為1,則如下圖所示:

c語言數組如何初始化

因為memset 是對每個位元組進行賦值的,已知一個int 為4位元組,那麼memset 賦值時為二進位則為:

00000001 00000001 00000001 00000001 = 16843009

【相關推薦:

C語言教學影片教學課程、#教學課程

以上是c語言數組如何初始化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn