国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > C語(yǔ)言數(shù)組如何初始化

C語(yǔ)言數(shù)組如何初始化 時(shí)間:2018-01-12      來(lái)源:未知

1.一維數(shù)組的初始化

1.1 未初始化的一維數(shù)組一維數(shù)組的成員在沒(méi)有初始化時(shí),數(shù)組成員的值都是未知的,一旦訪問(wèn)到未知的值,可能導(dǎo)致不可預(yù)料的情況,嚴(yán)重時(shí)可以導(dǎo)致軟件運(yùn)行異常。
下面,將沒(méi)有初始化的數(shù)組對(duì)應(yīng)的值打印
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. } 

輸出結(jié)果下:

1. 1088063360 21991 1088062960 21991 1255894432

可以看出輸出的結(jié)果是隨機(jī)的,所以一般情況數(shù)組需要給每個(gè)元素一個(gè)確定的值.

1.2 全部元素初始化

一維數(shù)組的初始化就是在定義數(shù)組時(shí)給每個(gè)元素依次賦值,一般語(yǔ)法如下:

1. 數(shù)組元素類(lèi)型 數(shù)組名[數(shù)組元素個(gè)數(shù)] = {元素值列表}

例如給一個(gè)有5個(gè)整型元素進(jìn)行初始化:

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

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

1. numbers[0] = 1;

2. numbers[1] = 2;

3. numbers[2] = 3;

4. numbers[3] = 4;

5. numbers[4] = 5;

如果數(shù)組的全部元素初始化后,則可以省略數(shù)組元素個(gè)數(shù):

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

省略元素個(gè)數(shù)在省略元素個(gè)數(shù)的情況下,如果需要計(jì)算數(shù)組元素個(gè)數(shù)可以使用下面的公式

1. 數(shù)組元素的個(gè)數(shù) = 數(shù)組總的內(nèi)存大小 / 數(shù)組每個(gè)元素的大小

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

實(shí)際在使用時(shí)如下:
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. }

輸出結(jié)果為:

1. 1 2 3 4 5

1.3 部分元素初始化

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

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

如果只初始化部分元素,則剩下的沒(méi)有初始化的元素的值為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. } 

輸出結(jié)果如下:

1. 1 2 3 0 0

1.4 指定元素初始化

一維數(shù)組在初始化時(shí)也可以指定為某一個(gè)或者幾個(gè)元素進(jìn)行初始化,例如可以為第2個(gè)元素和第4個(gè)元素進(jìn)行初始化

具體的語(yǔ)法如下

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個(gè)元素,第4個(gè)元素進(jìn)行初 始化(從0開(kāi)始計(jì))
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. ~ 

輸出結(jié)果如下:

1. 0 0 100 0 200

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

2.二維數(shù)組的初始化

2.1 二維數(shù)組全元素初始化

二維數(shù)組的初始化與一維數(shù)組類(lèi)似,具體的語(yǔ)法如下:

1. int numbers[2][3] = {{1,2,3},{3,4,5}};//初始化二維數(shù)組,由兩個(gè)一維數(shù)組構(gòu)成 .

具體使用如下 :

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. } 

具體輸出結(jié)果如下:

1. 1 2 3

2. 4 5 6

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

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

2.2 線性初始化

由于二維數(shù)組在內(nèi)存存儲(chǔ)時(shí),仍然是按照線性的存儲(chǔ)方式,具體的存儲(chǔ)結(jié)構(gòu)如下圖:

C語(yǔ)言數(shù)組

在初始化時(shí),也可以按照一維數(shù)組的方式進(jìn)行初始化

1. int numbers[2][3] = {1,2,3,4,5,6};//按照一維數(shù)組的方式進(jìn)行存儲(chǔ)

具體使用方式如下:
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. }

輸出結(jié)果如下:

1. 1 2 3

2. 4 5 6

2.3 部分元素初始化

與一維數(shù)組一樣,也可以對(duì)部分元素進(jìn)行初始化,具體方式如下:

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. } 

輸出結(jié)果為:

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

2. 1 2 0

3. 4 5 0

對(duì)于沒(méi)有初始化的元素,對(duì)應(yīng)的會(huì)設(shè)置為0.

上一篇:AprilTags論文解讀

下一篇:數(shù)據(jù)結(jié)構(gòu)有什么用

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專(zhuān)線:010-82525158 企業(yè)培訓(xùn)洽談專(zhuān)線:010-82525379 院校合作洽談專(zhuān)線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部