色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > C語言數組如何初始化

C語言數組如何初始化 時間:2018-01-12      來源:未知

1.一維數組的初始化

1.1 未初始化的一維數組一維數組的成員在沒有初始化時,數組成員的值都是未知的,一旦訪問到未知的值,可能導致不可預料的情況,嚴重時可以導致軟件運行異常。
下面,將沒有初始化的數組對應的值打印
1. #include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[5];
6.
7. int i = 0;
8. for(i = 0;i < 5;i++)
9. {
10. printf(" %d ",numbers[i]);
11. }
12. printf("\n");
13.
14. return 0;
15. } 

輸出結果下:

1. 1088063360 21991 1088062960 21991 1255894432

可以看出輸出的結果是隨機的,所以一般情況數組需要給每個元素一個確定的值.

1.2 全部元素初始化

一維數組的初始化就是在定義數組時給每個元素依次賦值,一般語法如下:

1. 數組元素類型 數組名[數組元素個數] = {元素值列表}

例如給一個有5個整型元素進行初始化:

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

在上述初始化中,數組元素的值依次為:

1. numbers[0] = 1;

2. numbers[1] = 2;

3. numbers[2] = 3;

4. numbers[3] = 4;

5. numbers[4] = 5;

如果數組的全部元素初始化后,則可以省略數組元素個數:

1. int numbers[] = {1,2,3,4,5};//

省略元素個數在省略元素個數的情況下,如果需要計算數組元素個數可以使用下面的公式

1. 數組元素的個數 = 數組總的內存大小 / 數組每個元素的大小

例如在計算 numbers 數組時,可以這樣計算: 1. sizeof(numbers) / sizeof(int)

實際在使用時如下:
1. include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[5] = {1,2,3,4,5};
6.
7. int i;
8. for (i = 0;i < sizeof(numbers)/sizeof(int);i++)
9. {
10. printf(" %d ",numbers[i]);
11. }
12. putchar('\n');
13. return 0;
14. }

輸出結果為:

1. 1 2 3 4 5

1.3 部分元素初始化

在一維數組中也可以為部分元素進行初始化,使用的方式如下:

1. int numbers[5] = {1,2,3};//對部分元素進行初始化

如果只初始化部分元素,則剩下的沒有初始化的元素的值為0

具體使用如下:
1. #include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[5] = {1,2,3};
6.
7. int i;
8. for (i = 0;i < sizeof(numbers)/sizeof(int);i++)
9. {
10. printf(" %d ",numbers[i]);
11. }
12. putchar('\n');
13. return 0;
14. } 

輸出結果如下:

1. 1 2 3 0 0

1.4 指定元素初始化

一維數組在初始化時也可以指定為某一個或者幾個元素進行初始化,例如可以為第2個元素和第4個元素進行初始化

具體的語法如下

1. int numbers[5] = {[2] = 100,[4] = 200};//指定元素初始化,numbers[2] = 100, numbers[4] = 200

具體使用如下:
1. #include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[5] = {[2] = 100,[4] = 200,};//指定第2個元素,第4個元素進行初 始化(從0開始計)
6.
7. int i;
8.
9. for (i = 0;i < 5;i++)
10. {
11. printf(" %d ",numbers[i]);
12. }
13.
14. putchar('\n');
15.
16. return 0;
17. }
18. ~ 

輸出結果如下:

1. 0 0 100 0 200

一維數組的初始化必須在定義指定元素列表,否則需要每個元素依次賦值
1. int numbers[5];
2. numbers = {1,2,3,4,5};//error :不允許,只能一個一個元素依次賦值
3.
4.
5. int i = 0;
6. for (i = 0;i < 5;i++)
7. numbers[i] = i;

2.二維數組的初始化

2.1 二維數組全元素初始化

二維數組的初始化與一維數組類似,具體的語法如下:

1. int numbers[2][3] = {{1,2,3},{3,4,5}};//初始化二維數組,由兩個一維數組構成 .

具體使用如下 :

1. #include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[2][3] = {{1,2,3},{4,5,6}};
6.
7. int i,j;
8. for (i = 0;i < 2;i++)
9. {
10. for (j = 0;j < 3;j++)
11. {
12. printf(" %d ",numbers[i][j]);
13. }
14. putchar('\n');
15. }
16. return 0;
17. } 

具體輸出結果如下:

1. 1 2 3

2. 4 5 6

在全部元素初始化后,可以省略行下標,但是不能省略列下標.

1. int numbers[][3] = {{1,2,3},{4,5,6}};

2.2 線性初始化

由于二維數組在內存存儲時,仍然是按照線性的存儲方式,具體的存儲結構如下圖:

C語言數組

在初始化時,也可以按照一維數組的方式進行初始化

1. int numbers[2][3] = {1,2,3,4,5,6};//按照一維數組的方式進行存儲

具體使用方式如下:
1. #include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[2][3] = {1,2,3,4,5,6};
6.
7. int i,j;
8. for (i = 0;i < 2;i++)
9. {
10. for (j = 0;j < 3;j++)
11. {
12. printf(" %d ",numbers[i][j]);
13. }
14. putchar('\n');
15. }
16. return 0;
17. }

輸出結果如下:

1. 1 2 3

2. 4 5 6

2.3 部分元素初始化

與一維數組一樣,也可以對部分元素進行初始化,具體方式如下:

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

具體的代碼如下:
1. #include <stdio.h>
2.
3. int main(int argc,char *argv[])
4. {
5. int numbers[2][3] = {{1,2},{4,5}};
6.
7. int i,j;
8. for (i = 0;i < 2;i++)
9. {
10. for (j = 0;j < 3;j++)
11. {
12. printf(" %d ",numbers[i][j]);
13. }
14. putchar('\n');
15. }
16. return 0;
17. } 

輸出結果為:

1. markyang@ubuntu:~/Templates$ ./a.out

2. 1 2 0

3. 4 5 0

對于沒有初始化的元素,對應的會設置為0.

上一篇:AprilTags論文解讀

下一篇:數據結構有什么用

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 丝袜美腿亚洲一区二区 | 性中国熟妇videofreesexwww | 久久精品国产精品亚洲色婷婷 | 18禁男女爽爽爽午夜网站免费 | 国产成人精品怡红院在线观看 | 国产精品卡1卡2卡3 亚洲成在人线aⅴ免费毛片 | 在线免费小视频 | 中文字幕无码无遮挡在线看 | 嫩草视频懂你的影院 | 亚洲日韩乱码中文字幕 | 欧美午夜影院 | 国产一卡2卡3卡4卡网站免费 | 2020年国产精品 | 久久人人爽天天玩人人妻精品 | 亚洲欧美中文字幕日韩一区二区 | 国产一级自拍视频 | 美女高潮无套内谢视频免费 | 亚洲av无码成h人动漫无遮 | 樱花视频在线观看进击的巨人第三季 | 亚洲网国产 | 亚洲熟伦熟女新五十路熟妇 | 丁香花在线观看免费高清版 | 忘忧草www日本高清 一区二区无码免费视频网站 | www.高潮原创av| 日本护士吞精囗交gif | 国产成 人 综合 亚洲网站 | 亚洲AV永久无码精品无码四虎 | 少妇人妻好深太紧了A | 青青av| 精品人妻人人做人人爽夜夜爽 | 少妇午夜性影院私人影院成都 | 日本黄页网站免费观看 | 欧美人与动ZOZO在线播放 | 中文字幕第10页 | 精品自拍视频在线观看 | 少女哔哩哔哩视频在线看 | 东北老女人高潮呻吟视频 | 99国产揄拍国产精品人妻 | 国产麻豆剧传媒精品AV | 国产乱人伦偷精品视频免观看 | 真实国产乱人伦在线视频播放 |