国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

詳述C語言數組

2019-11-14 08:45:02
字體:
來源:轉載
供稿:網友

C語言數組

一、數組的概念

用來存儲一組數據的構造數據類型

特點:只能存放一種類型的數據,如全部是int型或者全部是char型,數組里的數據成為元素。

 

二、數組的定義

格式: 類型 數組名[元素個數];

舉例:存儲5個人的年齡

Int agrs[5]; //在內存中開辟4x5=20個字節的存儲空間

可以在定義數組的同時對數組進行初始化:

Int ages[5]={17,18,19,20,21};

遍歷數組:

For(int i=0;i<5;i++)

{

PRintf(“ages[%d]=%d/n”,i,ages[i]);

}

注意:

(1)數組的初始化

①. Int ages[5]={17,18,19,20,21};//一般寫法

②. Int ages[5]={17,18};//只對前兩個元素賦值

③. Int ages[5]={[3]=10,[4]=11};//對指定的元素賦值,這里為第三個和第四個

④. Int ages[]={11,12,13}.//正確,右邊的元素確定,則個數可以省略這里為3個。

⑤. Int ages[];//錯誤,編譯器無法知道應該分配多少的存儲空間

⑥. Int ages[5];ages={17,18,19,20,21};//錯誤,只能在定義數組時這樣進行初始化

⑦. Int ages[‘A’]={1,2,3};//正確,相當于是ages[65]

⑧. Int count=5;int ages[count];//如果不進行初始化,則這種寫法正確,編譯器不會報錯為其分配20個字節的存儲空間,ages[0]=1;ages[1]=2;可以像這樣對數組的元素進行賦值,但是2,3,4等元素的值時不確定的。

⑨. 而int count=5;int ages[count]={1,2,3,4,5};//這種寫法是錯誤的,在定義數組時對數組進行初始化,元素的個數必須為常量或者不寫,不能是一個變量

 

(2)計算數組元素

當沒有表明數組元素個數時,如何對其進行遍歷(要求使用數組元素個數)?

可以使用sizeof運算符來計算數組元素的個數

Int count=sizeof(ages)/sizeof(int); //數組的總長度除以單個的長度等于元素個數

 

三、數組內存存儲細節

假設有數組如下:

Int x[]={1,2};

Char ca[5]={‘a’,‘A’,‘B’,‘C’,‘D’};

數組名即代表數組的地址,數組的地址==數組名(ca)==數組的首元素的地址&ca[0]

在內存中,內存從大到小進行尋址,為數組分配了存儲空間后,數組的元素自然的從上往下排列存儲,整個數組的地址為首元素的地址。

模擬該數組的內存存儲細節如下:

 

注意:字符在內存中是以對應ASCII值的二進制形式存儲的,而非上表的形式。

在這個例子中,數組x的地址為它的首元素的地址0x08,數組ca的地址為0x03。

 

四、數組-傳址調用

Void change(int array[]) //數組可以作為函數的形參,可以省略數組元素的個數

{

Array[0]=100;

}

 

Void change2(int a)  //基本類型作為函數的形參

{

a=200;

}

 

Int main()

{

Int ages[5]={1,2,3,4,5};

Change2(ages[0]);

Change(ages);

Return 0;

}

Array數組與ages數組的地址一致,若以數組作為函數的參數,這種傳遞方式是傳址調用,傳遞的是整個數組的地址,修改形參數組元素的值,就是修改實參的值。

當你把一個數組當做參數來傳遞時,它會看做是一個指針,在該函數體內使用sizeof運算符來計算數組的長度,得出的數值永遠為8,而非數組的實際長度,因為任何類型的指針都占8個字節的存儲空間。

提示:數組作為一個函數的參數時,如果函數體涉及到數組遍歷等操作,通常把數組的實際元素個數也作為參數傳遞給函數。

如 void maxofarray(int array[],sizeof(ages)/sizeof(int)){....}

 

五、二維數組

Int ages[50];//數組能夠存放50個int類型的數據

Int ages1[3][10];//數組能夠存放3個數組,每個數組存放10個數值,共3x10=30個述職數值。

 

一個二維數組a,a包括兩個一維數組a[0]和a[1],每個一維數組都包括三個元素。

使用場合:五子棋,俄羅斯方塊等,

假設:

char Y[3][2]={

{‘A’,‘B’},

{‘C,‘D’},

{‘E,‘F’}

};

內存情況:

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松溪县| 龙山县| 和平区| 瓦房店市| 凌云县| 阳曲县| 玉田县| 闽侯县| 宕昌县| 巴彦淖尔市| 镇坪县| 五河县| 临高县| 兰坪| 南宫市| 寿光市| 甘南县| 莫力| 应城市| 平乡县| 孟州市| 紫云| 南陵县| 延庆县| 买车| 阿拉尔市| 彩票| 邹平县| 邻水| 志丹县| 安宁市| 柏乡县| 工布江达县| 濮阳市| 鄂托克旗| 大城县| 南乐县| 济源市| 靖西县| 舟曲县| 武定县|