站長資訊網
        最全最豐富的資訊網站

        c語言數組怎么初始化

        方法:1、定義數組時給所有元素賦初值,例“int a[5]={1,2,3,4,5}”;2、給一部分元素賦值,例“int a[5]={1,2}”;3、定義時不指定數組長度,直接給所有元素賦初值,例“int a[]={1,2,3,4,5}”。

        c語言數組怎么初始化

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

        數組初始化

        數組的初始化可以使用以下方法實現:

        1) 定義數組時給所有元素賦初值,這叫“完全初始化”。例如:

        int a[5] = {1, 2, 3, 4, 5};

        通過將數組元素的初值依次放在一對花括號中,如此初始化之后,a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5,即從左到右依次賦給每個元素。需要注意的是,初始化時各元素間是用逗號隔開的,不是用分號。

        2) 可以只給一部分元素賦值,這叫“不完全初始化”。例如:

        int a[5] = {1, 2};

        定義的數組 a 有 5 個元素,但花括號內只提供兩個初值,這表示只給前面兩個元素 a[0]、a[1] 初始化,而后面三個元素都沒有被初始化。不完全初始化時,沒有被初始化的元素自動為 0。

        需要注意的是,“不完全初始化”和“完全不初始化”不一樣。如果“完全不初始化”,即只定義“int a[5];”而不初始化,那么各個元素的值就不是0了,所有元素都是垃圾值。

        你也不能寫成“int a[5]={};”。如果大括號中什么都不寫,那就是極其嚴重的語法錯誤。大括號中最少要寫一個數。比如“int a[5]={0};”,這時就是給數組“清零”,此時數組中每個元素都是零。此外,如果定義的數組的長度比花括號中所提供的初值的個數少,也是語法錯誤,如“a[2]={1,2,3,4,5};”。

        3) 如果定義數組時就給數組中所有元素賦初值,那么就可以不指定數組的長度,因為此時元素的個數已經確定了。編程時我們經常都會使用這種寫法,因為方便,既不會出問題,也不用自己計算有幾個元素,系統會自動分配空間。例如:

        int a[5] = {1, 2, 3, 4, 5};

        可以寫成:

        int a[] = {1, 2, 3, 4, 5};

        第二種寫法的花括號中有 5 個數,所以系統會自動定義數組 a 的長度為 5。但是要注意,只有在定義數組時就初始化才可以這樣寫。如果定義數組時不初始化,那么省略數組長度就是語法錯誤。比如:

        int a[];

        那么編譯時就會提示錯誤,編譯器會提示你沒有指定數組的長度。

        下面給大家寫一個簡單的程序:

        # include <stdio.h> int main(void) {     int a[5] = {1, 2, 3, 4, 5};     int i;     for (i=0; i<5; ++i)     {         printf("%dn", a[i]);     }     return 0; }

        輸出結果是:

        1 2 3 4 5

        a 表示數組的名字,[5] 表示這個數組有 5 個元素,并分別用 a[0]、a[1]、a[2]、a[3]、a[4] 表示。并分別把花括號內的 1、2、3、4、5 賦給變量 a[0]、a[1]、a[2]、a[3]、a[4]。再次強調,下標從 0 開始,即從 a[0] 開始,而不是 a[1]。

        也可以用 scanf 手動從鍵盤對數組進行初始化:

        # include <stdio.h> int main(void) {     int a[5] = {0};  //數組清零初始化     int i;     printf("請輸入5個數:");     for (i=0; i<5; ++i)     {         scanf("%d", &a[i] );     }     for (i=0; i<5; ++i)     {         printf("%dx20", a[i]);     }     printf("n");     return 0; }

        輸出結果是:

        請輸入5個數:1 2 3 4 5 1 2 3 4 5

        同使用 scanf 給字符數組輸入字符串時有所不同,輸入數字時必須用 for 循環進行輸入。而輸入字符串時無須用循環,直接用 scanf 就可以了。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲一区精品无码| 精品久久久久久无码专区不卡| 中文字幕九七精品乱码| 亚洲国产精品久久久久久| 亚洲精品欧美精品日韩精品| 国产精品久久久99| 欧美精品一区二区三区在线| 国产精品视频一区二区噜噜| 亚洲精品中文字幕乱码三区| 国产精品成人99久久久久91gav| 国产精品久久自在自线观看| 亚洲欧美激情精品一区二区| 国内精品国产成人国产三级| 久久久久夜夜夜精品国产| 精品国产AV一区二区三区| 无码人妻精品中文字幕免费| 日韩精品一区二区三区不卡| 国产手机在线精品| 8050免费午夜一级国产精品| 国产偷亚洲偷欧美偷精品| 99精品一区二区三区无码吞精| 精品无人区一区二区三区| 蜜芽亚洲av无码精品色午夜| 午夜精品久久久久久毛片| 亚洲精品蜜桃久久久久久| 在线亚洲精品自拍| 亚洲高清国产AV拍精品青青草原| 香港aa三级久久三级老师2021国产三级精品三级在 | 老司机91精品网站在线观看| heyzo高无码国产精品| 久久久精品国产sm调教网站| 久久国产乱子伦免费精品| 久久精品无码午夜福利理论片| 无码国产69精品久久久久网站| 日韩精品一区二区亚洲AV观看| 亚洲精品无码MV在线观看| 少妇精品无码一区二区三区| 久久香蕉超碰97国产精品| 久久99精品久久久久久久不卡| 精品国产福利一区二区| 999久久久无码国产精品|