第7章 批量數(shù)據(jù)處理程序設(shè)計(jì)_第1頁(yè)
第7章 批量數(shù)據(jù)處理程序設(shè)計(jì)_第2頁(yè)
第7章 批量數(shù)據(jù)處理程序設(shè)計(jì)_第3頁(yè)
第7章 批量數(shù)據(jù)處理程序設(shè)計(jì)_第4頁(yè)
第7章 批量數(shù)據(jù)處理程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩118頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)前幾章前幾章使用的變量都屬于使用的變量都屬于基本類型基本類型,例如整型、字符型、浮點(diǎn)型數(shù)據(jù),這例如整型、字符型、浮點(diǎn)型數(shù)據(jù),這些都是簡(jiǎn)單的數(shù)據(jù)類型。些都是簡(jiǎn)單的數(shù)據(jù)類型。對(duì)于有些數(shù)據(jù),只用簡(jiǎn)單的數(shù)據(jù)類型對(duì)于有些數(shù)據(jù),只用簡(jiǎn)單的數(shù)據(jù)類型是不夠的,是不夠的,難以難以反映出數(shù)據(jù)的反映出數(shù)據(jù)的特點(diǎn)特點(diǎn),也難以有效地進(jìn)行處理。也難以有效地進(jìn)行處理。程序設(shè)計(jì)基礎(chǔ)如果有如果有1000名學(xué)生名學(xué)生,每個(gè)學(xué)生有一每個(gè)學(xué)生有一個(gè)成績(jī),需要求這個(gè)成績(jī),需要求這1000名學(xué)生的平名學(xué)生的平均成績(jī)。均成績(jī)。用用s1,s2,s3,s1000表示每個(gè)學(xué)生表示每個(gè)學(xué)生的成績(jī),能體現(xiàn)的成績(jī),能體現(xiàn)內(nèi)在聯(lián)

2、系內(nèi)在聯(lián)系。C語(yǔ)言用方括號(hào)中的數(shù)字表示下標(biāo),語(yǔ)言用方括號(hào)中的數(shù)字表示下標(biāo),如用如用s15表示表示數(shù)組名數(shù)組名程序設(shè)計(jì)基礎(chǔ)數(shù)組是一組數(shù)組是一組有序數(shù)據(jù)的集合有序數(shù)據(jù)的集合。數(shù)組中。數(shù)組中各數(shù)據(jù)的排列是有一定規(guī)律的,下標(biāo)各數(shù)據(jù)的排列是有一定規(guī)律的,下標(biāo)代表數(shù)據(jù)在數(shù)組中的序號(hào)代表數(shù)據(jù)在數(shù)組中的序號(hào)用一個(gè)用一個(gè)數(shù)組名數(shù)組名和和下標(biāo)下標(biāo)惟一確定數(shù)組中惟一確定數(shù)組中的元素的元素?cái)?shù)組中的每一個(gè)元素都屬于數(shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)同一個(gè)數(shù)據(jù)類型據(jù)類型程序設(shè)計(jì)基礎(chǔ)7.1 怎樣定義和引用一維數(shù)組怎樣定義和引用一維數(shù)組7.2 怎樣定義和引用二維數(shù)組怎樣定義和引用二維數(shù)組程序設(shè)計(jì)基礎(chǔ)7.1.1 怎樣定義一維數(shù)組

3、怎樣定義一維數(shù)組7.1.2 怎樣引用一維數(shù)組元素怎樣引用一維數(shù)組元素7.1.3 一維數(shù)組的初始化一維數(shù)組的初始化7.1.4 一維數(shù)組程序舉例一維數(shù)組程序舉例程序設(shè)計(jì)基礎(chǔ)定義一維數(shù)組的一般形式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;數(shù)組名的命名規(guī)則和變量名相同數(shù)組名的命名規(guī)則和變量名相同如如 int a10;數(shù)組名數(shù)組名程序設(shè)計(jì)基礎(chǔ)定義一維數(shù)組的一般形式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;數(shù)組名的命名規(guī)則和變量名相同數(shù)組名的命名規(guī)則和變量名相同如如 int a10;數(shù)組數(shù)組長(zhǎng)度長(zhǎng)度程序設(shè)計(jì)基礎(chǔ)定義一維數(shù)組的一般形

4、式為:定義一維數(shù)組的一般形式為: 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;數(shù)組名的命名規(guī)則和變量名相同數(shù)組名的命名規(guī)則和變量名相同如如 int a10;10個(gè)元素個(gè)元素:a0,a1,a2,a9每個(gè)元素的數(shù)據(jù)類型每個(gè)元素的數(shù)據(jù)類型a0 a1 a2 a3a7 a8 a9程序設(shè)計(jì)基礎(chǔ)例:例:int a4+6; 合法合法int n=10; int an;不合法不合法程序設(shè)計(jì)基礎(chǔ)在定義數(shù)組并對(duì)其中各元素賦值后,就在定義數(shù)組并對(duì)其中各元素賦值后,就可以引用數(shù)組中的元素可以引用數(shù)組中的元素注意:只能引用數(shù)組元素而不能一次整注意:只能引用數(shù)組元素而不能一次整體調(diào)用整個(gè)數(shù)組全部元素的值體調(diào)用整個(gè)數(shù)組全部

5、元素的值程序設(shè)計(jì)基礎(chǔ)引用數(shù)組元素的表示形式為:引用數(shù)組元素的表示形式為: 數(shù)組名下標(biāo)數(shù)組名下標(biāo)如如a0=a5+a7-a2*3 合法合法int n=5,a10;an=20;合法合法程序設(shè)計(jì)基礎(chǔ) 例例7.1 對(duì)對(duì)10個(gè)數(shù)組元素依次賦值為個(gè)數(shù)組元素依次賦值為0,1, 2,3,4,5,6,7,8,9,要求按逆序輸出。,要求按逆序輸出。解題思路:解題思路:u定義一個(gè)長(zhǎng)度為定義一個(gè)長(zhǎng)度為10的數(shù)組,數(shù)組定義為整型的數(shù)組,數(shù)組定義為整型u要賦的值是從要賦的值是從0到到9,可以用循環(huán)來(lái)賦值,可以用循環(huán)來(lái)賦值u用循環(huán)按下標(biāo)從大到小輸出這用循環(huán)按下標(biāo)從大到小輸出這10個(gè)元素個(gè)元素程序設(shè)計(jì)基礎(chǔ)#include in

6、t main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 使使a0a9的值為的值為090123456789a0a1a2a3a4a5a6a7a8a9程序設(shè)計(jì)基礎(chǔ)#include int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 先輸出先輸出a9,最,最后輸出后輸出a00123456789a0a1a2a3a4a5a6a7a8a9程序設(shè)計(jì)基礎(chǔ)在定義數(shù)組的同時(shí),給各數(shù)組元素賦值在定義數(shù)組的同時(shí),給各數(shù)組元

7、素賦值int a10=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4;相當(dāng)于相當(dāng)于 int a10=0,1,2,3,4,0,0,0,0,0;int a10=0,0,0,0,0,0,0,0,0,0;相當(dāng)于相當(dāng)于 int a10=0;int a5=1,2,3,4,5;可寫(xiě)為可寫(xiě)為 int a =1,2,3,4,5;程序設(shè)計(jì)基礎(chǔ) 例例7.2 用數(shù)組處理求用數(shù)組處理求Fibonacci數(shù)列問(wèn)題數(shù)列問(wèn)題解題思路:解題思路:u例例5.8中用簡(jiǎn)單變量處理的,中用簡(jiǎn)單變量處理的,缺點(diǎn)缺點(diǎn)不能在內(nèi)存不能在內(nèi)存中保存這些數(shù)。假如想直接輸出數(shù)列中第中保存這些數(shù)。假如想直接輸出數(shù)列中第25

8、個(gè)數(shù),是很困難的。個(gè)數(shù),是很困難的。u如果用數(shù)組處理,每一個(gè)數(shù)組元素代表數(shù)列中如果用數(shù)組處理,每一個(gè)數(shù)組元素代表數(shù)列中的一個(gè)數(shù),依次求出各數(shù)并存放在相應(yīng)的數(shù)組的一個(gè)數(shù),依次求出各數(shù)并存放在相應(yīng)的數(shù)組元素中元素中程序設(shè)計(jì)基礎(chǔ)#include int main() int i; int f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;i20;i+) if(i%5=0) printf(“n”); printf(“%12d”,fi); printf(n); return 0;程序設(shè)計(jì)基礎(chǔ) 例例7.3 有有10個(gè)個(gè)整型數(shù)據(jù)整型數(shù)據(jù),要求對(duì)它們按,要求對(duì)它們按

9、由小到大的順序排列。由小到大的順序排列。解題思路:解題思路:u排序的規(guī)律有兩種:一種是排序的規(guī)律有兩種:一種是“升序升序”,從小到從小到大;另一種是大;另一種是“降序降序”,從大到小,從大到小u把題目抽象為:把題目抽象為:“對(duì)對(duì)n個(gè)數(shù)按升序排序個(gè)數(shù)按升序排序”u采用起泡法排序采用起泡法排序程序設(shè)計(jì)基礎(chǔ)985420895420859420854920854290854209大數(shù)沉淀,小數(shù)起泡大數(shù)沉淀,小數(shù)起泡a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 程序設(shè)計(jì)基礎(chǔ)854209584209548209542809542089a0a1a2a3a4a

10、5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 程序設(shè)計(jì)基礎(chǔ)542089452089425089420589a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 程序設(shè)計(jì)基礎(chǔ)420589240589204589a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 程序設(shè)計(jì)基礎(chǔ)204589024589a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 程序設(shè)計(jì)基礎(chǔ)for(i=0;iai+1) for(i=0;iai+1) for(i=0;iai

11、+1) for(i=0;iai+1) for(j=0;j5;j+)程序設(shè)計(jì)基礎(chǔ)int a10; int i,j,t;printf(input 10 numbers :n);for (i=0;i10;i+) scanf(%d,&ai); printf(n);for(j=0;j9;j+)for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t;printf(the sorted numbers :n);for(i=0;i10;i+) printf(%d ,ai);printf(n);程序設(shè)計(jì)基礎(chǔ)2456 1847 1243 1600 2346 27573045 2018 172

12、5 2020 2458 14361427 1175 1046 1976 1477 20181分隊(duì)分隊(duì)2分隊(duì)分隊(duì)3分隊(duì)分隊(duì)隊(duì)員隊(duì)員1 隊(duì)員隊(duì)員2隊(duì)員隊(duì)員3 隊(duì)員隊(duì)員4隊(duì)員隊(duì)員5隊(duì)員隊(duì)員6float pay36;程序設(shè)計(jì)基礎(chǔ)7.2.1怎樣定義二維數(shù)組怎樣定義二維數(shù)組7.2.2怎樣引用二維數(shù)組的元素怎樣引用二維數(shù)組的元素7.2.3二維數(shù)組的初始化二維數(shù)組的初始化7.2.4二維數(shù)組程序舉例二維數(shù)組程序舉例程序設(shè)計(jì)基礎(chǔ)二維數(shù)組定義的一般形式為二維數(shù)組定義的一般形式為 類型符類型符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式常量表達(dá)式常量表達(dá)式; 如:如:float a34,b510;二維數(shù)組可被看作是一種特殊的一

13、維數(shù)組:二維數(shù)組可被看作是一種特殊的一維數(shù)組: 它的元素又是一個(gè)一維數(shù)組它的元素又是一個(gè)一維數(shù)組例如,把例如,把a(bǔ)看作是一個(gè)一維數(shù)組,它有看作是一個(gè)一維數(shù)組,它有3個(gè)元素:個(gè)元素: a0、a1、a2每個(gè)元素又是一個(gè)包含每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組個(gè)元素的一維數(shù)組程序設(shè)計(jì)基礎(chǔ)a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23a0a1a2程序設(shè)計(jì)基礎(chǔ)a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23邏輯存儲(chǔ)邏輯存儲(chǔ)內(nèi)存中的存儲(chǔ)順序內(nèi)存中的存儲(chǔ)順序程序設(shè)計(jì)基礎(chǔ)二維數(shù)組元素的表示形式為二維數(shù)組元素的表示形式為:

14、數(shù)組名下標(biāo)下標(biāo)數(shù)組名下標(biāo)下標(biāo) b12=a23/2 合法合法for(i=0;i3;i+) printf(“%d,%dn”,ai0,a0i);合法合法程序設(shè)計(jì)基礎(chǔ)int a34=1,2,3,4,5,6,7,8, 9,10,11,12;int a34=1,2,3,4,5,6,7,8,9,10,11,12;int a34=1,5,9;等價(jià)于等價(jià)于int a34=1,0,0,0,5,0,0,0, 9,0,0,0;int a34=1,5,6;相當(dāng)于相當(dāng)于int a34=1,5,6,0;程序設(shè)計(jì)基礎(chǔ)int a34=1,2,3,4,5,6,7,8,9,10,11,12;等價(jià)等價(jià)于于:int a 4=1,2,3

15、,4,5,6,7,8,9,10,11,12;int a4=0,0,3, ,0,10;合法合法程序設(shè)計(jì)基礎(chǔ) 例例7.4 將一個(gè)二維數(shù)組行和列的元素互換,將一個(gè)二維數(shù)組行和列的元素互換,存到另一個(gè)二維數(shù)組中。存到另一個(gè)二維數(shù)組中。654321a635241b程序設(shè)計(jì)基礎(chǔ)解題思路:解題思路:u可以定義兩個(gè)數(shù)組:數(shù)組可以定義兩個(gè)數(shù)組:數(shù)組a為為2行行3列,存放指定列,存放指定的的6個(gè)數(shù)個(gè)數(shù)u數(shù)組數(shù)組b為為3行行2列,開(kāi)始時(shí)未賦值列,開(kāi)始時(shí)未賦值u將將a數(shù)組中的元素?cái)?shù)組中的元素aij存放到存放到b數(shù)組中的數(shù)組中的bji元素中元素中u用嵌套的用嵌套的for循環(huán)完成循環(huán)完成程序設(shè)計(jì)基礎(chǔ)#include in

16、t main() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for (i=0;i=1;i+) for (j=0;j=2;j+) printf(%5d,aij); bji=aij; printf(n); 處理處理a的一行中各元素的一行中各元素處理處理a中某一列元素中某一列元素輸出輸出a的的各元素各元素a元素值賦給元素值賦給b相應(yīng)元素相應(yīng)元素程序設(shè)計(jì)基礎(chǔ) printf(array b:n); for (i=0;i=2;i+) for(j=0;jmax,則表示則表示a01是已經(jīng)比過(guò)的數(shù)據(jù)中值最大的,是已經(jīng)比過(guò)的數(shù)據(jù)中值最大的,把它的值賦

17、給把它的值賦給max,取代了,取代了max的原值的原值u以后依此處理,以后依此處理,最后最后max就是最大的值就是最大的值程序設(shè)計(jì)基礎(chǔ) for i=0 to 2 for j=0 to 3max=aijrow=Icolum=jaijmax真真 max=a00輸出:輸出:max,row,colum假假程序設(shè)計(jì)基礎(chǔ)記行號(hào)記行號(hào) int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6, -10,10,-5,2; max=a00; for (i=0;i=2;i+) for (j=0;jmax) max=aij; row=i; colum=j; printf(

18、max=%dnrow=%dn colum=%dn,max,row,colum);記記最大值最大值記記列列號(hào)號(hào)程序設(shè)計(jì)基礎(chǔ)一個(gè)變量有地址,一個(gè)數(shù)組包含若干元素一個(gè)變量有地址,一個(gè)數(shù)組包含若干元素,每個(gè)數(shù)組元素都有相應(yīng)的地址,每個(gè)數(shù)組元素都有相應(yīng)的地址指針變量可以指向數(shù)組元素(把某一元素指針變量可以指向數(shù)組元素(把某一元素的地址放到一個(gè)指針變量中)的地址放到一個(gè)指針變量中)所謂數(shù)組元素的指針就是數(shù)組元素的地址所謂數(shù)組元素的指針就是數(shù)組元素的地址程序設(shè)計(jì)基礎(chǔ)可以用一個(gè)指針變量指向一個(gè)數(shù)組元素可以用一個(gè)指針變量指向一個(gè)數(shù)組元素 int a10=1,3,5,7,9,11,13,15,17,19; int

19、 *p; p=&a0;等價(jià)于等價(jià)于p=a;等價(jià)于等價(jià)于int *p=a;或或int *p=&a0;注意注意:數(shù)組名數(shù)組名a不代表整個(gè)數(shù)組,不代表整個(gè)數(shù)組,只代表數(shù)組首元素的地址。只代表數(shù)組首元素的地址。“p=a;”的作用是的作用是“把把a(bǔ)數(shù)組的首元素的地?cái)?shù)組的首元素的地址賦給指針變量址賦給指針變量p”,而不是,而不是“把把數(shù)組數(shù)組a各元素的值賦給各元素的值賦給p”。程序設(shè)計(jì)基礎(chǔ)在指針指向數(shù)組元素時(shí),在指針指向數(shù)組元素時(shí),允許允許以下運(yùn)算:以下運(yùn)算:u加一個(gè)整數(shù)加一個(gè)整數(shù)(用用+或或+=),如,如p+1u減一個(gè)整數(shù)減一個(gè)整數(shù)(用用-或或-=),如,如p-1u自加運(yùn)算,如自加運(yùn)算,

20、如p+,+pu自減運(yùn)算,如自減運(yùn)算,如p-,-pu兩個(gè)指針相減,如兩個(gè)指針相減,如p1-p2 (只有只有p1和和p2都都指向同一數(shù)組中的元素時(shí)才有意義指向同一數(shù)組中的元素時(shí)才有意義)程序設(shè)計(jì)基礎(chǔ)(1) 如果指針變量如果指針變量p已指向數(shù)組中的一個(gè)元已指向數(shù)組中的一個(gè)元素,則素,則p+1指向同一數(shù)組中的下一個(gè)元素指向同一數(shù)組中的下一個(gè)元素,p-1指向同一數(shù)組中的上一個(gè)元素。指向同一數(shù)組中的上一個(gè)元素。 float a10,*p=a; 假設(shè)假設(shè)a0的地址為的地址為2000,則,則up的值為的值為2000up+1的值為的值為2004uP-1的值為的值為1996越界越界程序設(shè)計(jì)基礎(chǔ)(2) 如果的初如果

21、的初值為值為&a0,則則p+i和和a+i就就是數(shù)組元素是數(shù)組元素ai的地址,的地址,或者說(shuō),它們或者說(shuō),它們指向指向a數(shù)組序號(hào)數(shù)組序號(hào)為為i的元素的元素a0a1a2a3a4a5a6a7a8a9pp+1,a+1 p+i,a+i p+9,a+9 程序設(shè)計(jì)基礎(chǔ)(3) *(p+i)或或*(a+i)是是p+i或或a+i所指向所指向的數(shù)組元素,的數(shù)組元素,即即ai。a0a1a2a3a4a5a6a7a8a9pp+1,a+1 p+i,a+i p+9,a+9 *(p+i)程序設(shè)計(jì)基礎(chǔ)(4) 如果指針如果指針p1和和p2都指向同一數(shù)組都指向同一數(shù)組 p2-p1的值的值是是4 不能不能p1+p2a0a1a2

22、a3a4a5a6a7a8a9p1p2 程序設(shè)計(jì)基礎(chǔ)引用一個(gè)數(shù)組元素,可用下面兩種方法:引用一個(gè)數(shù)組元素,可用下面兩種方法: ()() 下標(biāo)法,如下標(biāo)法,如ai形式形式 ()() 指針?lè)ǎ缰羔樂(lè)?,?(a+i)或或*(p+i) 其中其中a是數(shù)組名,是數(shù)組名,p是指向數(shù)組元素的指針是指向數(shù)組元素的指針變量,其初值變量,其初值p=a程序設(shè)計(jì)基礎(chǔ) 例例7.6 有一個(gè)整型數(shù)組有一個(gè)整型數(shù)組a,有,有10個(gè)元素,個(gè)元素,要求輸出數(shù)組中的全部元素。要求輸出數(shù)組中的全部元素。解題思路:引用數(shù)組中各元素的值有解題思路:引用數(shù)組中各元素的值有3種種方法:方法:(1)下標(biāo)法下標(biāo)法;(2)通過(guò)數(shù)組名計(jì)算通過(guò)數(shù)組名計(jì)

23、算數(shù)組元素地址,找出元素的值數(shù)組元素地址,找出元素的值;(3) 用指用指針變量指向數(shù)組元素針變量指向數(shù)組元素分別寫(xiě)出程序,以資比較分析。分別寫(xiě)出程序,以資比較分析。程序設(shè)計(jì)基礎(chǔ)(1) 下標(biāo)法。下標(biāo)法。 #include int main() int a10; int i; printf(“enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(“%d ”,ai); printf(%n); return 0; 程序設(shè)計(jì)基礎(chǔ)(2) 通過(guò)數(shù)組名計(jì)算數(shù)組元素地址,找出元素的值通過(guò)數(shù)組名

24、計(jì)算數(shù)組元素地址,找出元素的值#include int main() int a10; int i; printf(“enter 10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(“%d ”,*(a+i); printf(n); return 0; scanf(%d,a+i);程序設(shè)計(jì)基礎(chǔ)(3) 用指針變量指向數(shù)組元素用指針變量指向數(shù)組元素 #include int main() int a10; int *p,i; printf(“enter 10 integer numbers:

25、n); for(i=0;i10;i+) scanf(%d,&ai); for(p=a;p(a+10);p+) printf(“%d ”,*p); printf(n); return 0;for(p=a;p(a+10);p+) scanf(%d,p);for(p=a;p(a+10);a+) printf(“%d ”,*a); 錯(cuò)!錯(cuò)!程序設(shè)計(jì)基礎(chǔ)用數(shù)組名作函數(shù)參數(shù)用數(shù)組名作函數(shù)參數(shù)時(shí),因?yàn)闀r(shí),因?yàn)閷?shí)參數(shù)組名實(shí)參數(shù)組名代表該數(shù)組首元素的地址代表該數(shù)組首元素的地址,形參應(yīng)該是一形參應(yīng)該是一個(gè)指針變量個(gè)指針變量C編譯都是將形參數(shù)組名作為指針變量來(lái)編譯都是將形參數(shù)組名作為指針變量來(lái)處理的處理的程

26、序設(shè)計(jì)基礎(chǔ)int main() void fun(int arr,int n; int array10; fun (array,10); return 0; void fun(int arr ,int n) fun(int *arr,int n)程序設(shè)計(jì)基礎(chǔ)int main() void fun(int arr,int n; int array10; fun (array,10); return 0; void fun(int *arr,int n) 程序設(shè)計(jì)基礎(chǔ)例例7.8 將數(shù)組將數(shù)組a中中n個(gè)整數(shù)按相反順序存放個(gè)整數(shù)按相反順序存放解題思路:將解題思路:將a0與與an-1對(duì)換,對(duì)換,將將a4

27、與與a5對(duì)換。對(duì)換。ji程序設(shè)計(jì)基礎(chǔ)ji程序設(shè)計(jì)基礎(chǔ)ji程序設(shè)計(jì)基礎(chǔ)ji程序設(shè)計(jì)基礎(chǔ)ji程序設(shè)計(jì)基礎(chǔ)#include int main() void inv(int x ,int n); int i, a10=3,7,9,11,0,6,7,5,4,2; for(i=0;i10;i+) printf(“%d ”,ai); printf(n); inv(a,10); for(i=0;i10;i+) printf(“%d ”,ai); printf(n); return 0;程序設(shè)計(jì)基礎(chǔ)void inv(int x ,int n) int temp,i,j,m=(n-1)/2; for(i=0;i=

28、m;i+) j=n-1-i; temp=xi;xi=xj;xj=temp; 程序設(shè)計(jì)基礎(chǔ)例例7.9 改寫(xiě)例改寫(xiě)例7.8,用指針變量作實(shí)參。,用指針變量作實(shí)參。#include int main() void inv(int *x,int n); int i, arr10,*p=arr; for(i=0;i10;i+,p+) scanf(“%d”,p); inv(p,10); for(p=arr;parr+10;p+) printf(“%d ”,*p); printf(n); return 0;不可少!不可少!程序設(shè)計(jì)基礎(chǔ) 例例7.10 用指針?lè)椒▽?duì)用指針?lè)椒▽?duì)10個(gè)整數(shù)按由大到個(gè)整數(shù)按由大到小

29、順序排序。小順序排序。解題思路:解題思路:u在主函數(shù)中定義數(shù)組在主函數(shù)中定義數(shù)組a存放存放10個(gè)整數(shù),定義個(gè)整數(shù),定義int *型指針變量型指針變量p指向指向a0u定義函數(shù)定義函數(shù)sort使數(shù)組使數(shù)組a中的元素按由大到小的中的元素按由大到小的順序排列順序排列u在主函數(shù)中調(diào)用在主函數(shù)中調(diào)用sort函數(shù),用指針函數(shù),用指針p作實(shí)參作實(shí)參u用選擇法進(jìn)行排序用選擇法進(jìn)行排序程序設(shè)計(jì)基礎(chǔ)#include int main() void sort(int x ,int n); int i,*p,a10; p=a; for(i=0;i10;i+) scanf(“%d”,p+); p=a; sort(p,10

30、); for(p=a,i=0;i10;i+) printf(“%d ”,*p); p+; printf(n); return 0;程序設(shè)計(jì)基礎(chǔ)void sort(int x,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jxk) k=j; if(k!=i) t=xi;xi=xk;xk=t; void sort(int *x,int n)if (*(x+j)*(x+k) k=j;t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;程序設(shè)計(jì)基礎(chǔ)指針變量可以指向一維數(shù)組中的元素,也指針變量可以指向一維數(shù)組中的元素,也可以指向多維數(shù)

31、組中的元素。但在概念上可以指向多維數(shù)組中的元素。但在概念上和使用方法上,多維數(shù)組的指針比一維數(shù)和使用方法上,多維數(shù)組的指針比一維數(shù)組的指針要復(fù)雜一些。組的指針要復(fù)雜一些。程序設(shè)計(jì)基礎(chǔ)1. 多維數(shù)組元素的地址多維數(shù)組元素的地址int a34=1,3,5,7, 9,11,13,15,17,19,21,23;1357911131517192123a0a1a2aa+1a+2a0 a0+1 a0+2 a0+3行指針行指針列指針列指針程序設(shè)計(jì)基礎(chǔ)a代表第代表第0行首地址行首地址a+1代表第代表第1行首地址行首地址a+2代表第代表第2行首地址行首地址1357911131517192123a0a1a2aa+1

32、a+2a0 a0+1 a0+2 a0+3行指針行指針列指針列指針行指針每加行指針每加1,走一行,走一行程序設(shè)計(jì)基礎(chǔ)a+i代表行號(hào)為代表行號(hào)為i的行首地址(按行變化)的行首地址(按行變化)*(a+i)代表什么?代表什么?1357911131517192123a0a1a2aa+1a+2a0 a0+1 a0+2 a0+3行指針行指針列指針列指針相當(dāng)于相當(dāng)于ai程序設(shè)計(jì)基礎(chǔ)a0代表代表a00的地址的地址a0+1代表代表a01的地址的地址a0+2代表代表a02的地址的地址a0+3代表代表a03的地址的地址1357911131517192123a0a1a2aa+1a+2a0 a0+1 a0+2 a0+3行

33、指針行指針列指針列指針列指針每加列指針每加1,走一列,走一列程序設(shè)計(jì)基礎(chǔ)a1代表誰(shuí)的地址?代表誰(shuí)的地址?a1+1代表誰(shuí)的地址?代表誰(shuí)的地址?a1+2代表誰(shuí)的地址?代表誰(shuí)的地址?a1+3代表誰(shuí)的地址?代表誰(shuí)的地址?1357911131517192123a0a1a2aa+1a+2a0 a0+1 a0+2 a0+3行指針行指針列指針列指針程序設(shè)計(jì)基礎(chǔ)ai+j代表誰(shuí)的地址?代表誰(shuí)的地址?1357911131517192123a0a1a2aa+1a+2a0 a0+1 a0+2 a0+3行指針行指針列指針列指針代表代表aij的地址的地址*(ai+j)代表什么?代表什么?代表元素代表元素aij*(*(a+i

34、)+j)代表什么?代表什么?與與*(ai+j)等價(jià)等價(jià)程序設(shè)計(jì)基礎(chǔ)例例7.11 二維數(shù)組的有關(guān)數(shù)據(jù)二維數(shù)組的有關(guān)數(shù)據(jù)(地址和值地址和值)#include int main() int a34=1,3,5,7,9,11,13,15, 17,19,21,23;程序設(shè)計(jì)基礎(chǔ) printf(“%d,%dn”,a,*a); printf(“%d,%dn”,a0,*(a+0); printf(“%d,%dn”,&a0,&a00); printf(“%d,%dn”,a1,a+1); printf(“%d,%dn”,&a10,*(a+1)+0); printf(“%d,%dn”,a2,

35、*(a+2); printf(“%d,%dn”,&a2,a+2); printf(“%d,%dn”,a10,*(*(a+1)+0); printf(“%d,%dn”,*a2,*(*(a+2)+0); return 0;程序設(shè)計(jì)基礎(chǔ)2. 指向多維數(shù)組元素的指針變量指向多維數(shù)組元素的指針變量(1) 指向數(shù)組元素的指針變量指向數(shù)組元素的指針變量 例例7.12 有一個(gè)有一個(gè)34的二維數(shù)組,要求的二維數(shù)組,要求用指向元素的指針變量輸出二維數(shù)組各用指向元素的指針變量輸出二維數(shù)組各元素的值。元素的值。程序設(shè)計(jì)基礎(chǔ)解題思路:解題思路:u二維數(shù)組的元素是整型的,它相當(dāng)于整型變二維數(shù)組的元素是整型的,它相

36、當(dāng)于整型變量,可以用量,可以用int*型指針變量指向它型指針變量指向它u二維數(shù)組的元素在內(nèi)存中是按行順序存放的二維數(shù)組的元素在內(nèi)存中是按行順序存放的,即存放完序號(hào)為,即存放完序號(hào)為0的行中的全部元素后,的行中的全部元素后,接著存放序號(hào)為接著存放序號(hào)為1的行中的全部元素,依此的行中的全部元素,依此類推類推u因此可以用一個(gè)指向整型元素的指針變量,因此可以用一個(gè)指向整型元素的指針變量,依次指向各個(gè)元素依次指向各個(gè)元素程序設(shè)計(jì)基礎(chǔ)#include int main() int a34=1,3,5,7,9,11,13,15, 17,19,21,23; int *p; for(p=a0;pa0+12;p+

37、) if(p-a0)%4=0) printf(“n”); printf(“%4d”,*p); printf(n); return 0;控制換行控制換行逐個(gè)訪問(wèn)各元素時(shí)常用此類指針逐個(gè)訪問(wèn)各元素時(shí)常用此類指針程序設(shè)計(jì)基礎(chǔ)(2) 指向由個(gè)元素組成的一維數(shù)組的指針指向由個(gè)元素組成的一維數(shù)組的指針變量變量 例例7.13 輸出二維數(shù)組任一行任一列元素的輸出二維數(shù)組任一行任一列元素的值。值。解題思路:假設(shè)仍然用例解題思路:假設(shè)仍然用例7.12程序中的二程序中的二維數(shù)組,例維數(shù)組,例7.12中定義的指針變量是指向中定義的指針變量是指向變量或數(shù)組元素的,現(xiàn)在改用指向一維數(shù)變量或數(shù)組元素的,現(xiàn)在改用指向一維數(shù)組

38、的指針變量。組的指針變量。程序設(shè)計(jì)基礎(chǔ)#include int main()int a34=1,3,5,7,9,11,13,15, 17,19,21,23; int (*p)4,i,j; p=a; printf(“enter row and colum:); scanf(“%d,%d”,&i,&j); printf(“a%d,%d=%dn”, i,j,*(*(p+i)+j); return 0;行指針行指針aij程序設(shè)計(jì)基礎(chǔ)3. 用指向數(shù)組的指針作函數(shù)參數(shù)用指向數(shù)組的指針作函數(shù)參數(shù)一維數(shù)組名可以作為函數(shù)參數(shù),多維數(shù)組一維數(shù)組名可以作為函數(shù)參數(shù),多維數(shù)組名也可作函數(shù)參數(shù)。名也可作

39、函數(shù)參數(shù)。用指針變量作形參,以接受實(shí)參數(shù)組名傳用指針變量作形參,以接受實(shí)參數(shù)組名傳遞來(lái)的地址。遞來(lái)的地址??梢杂袃煞N方法:可以有兩種方法:用指向變量的指針變量用指向變量的指針變量用指向一維數(shù)組的指針變量用指向一維數(shù)組的指針變量程序設(shè)計(jì)基礎(chǔ) 例例7.14 有一個(gè)班,有一個(gè)班,3個(gè)學(xué)生,各學(xué)個(gè)學(xué)生,各學(xué)4門課,門課,計(jì)算總平均分?jǐn)?shù)以及第計(jì)算總平均分?jǐn)?shù)以及第n個(gè)學(xué)生的成績(jī)。個(gè)學(xué)生的成績(jī)。 解題思路:這個(gè)題目是很簡(jiǎn)單的。本例用指解題思路:這個(gè)題目是很簡(jiǎn)單的。本例用指向數(shù)組的指針作函數(shù)參數(shù)。用函數(shù)向數(shù)組的指針作函數(shù)參數(shù)。用函數(shù)average求總平均成績(jī),用函數(shù)求總平均成績(jī),用函數(shù)search找找出并輸出

40、第出并輸出第i個(gè)學(xué)生的成績(jī)。個(gè)學(xué)生的成績(jī)。程序設(shè)計(jì)基礎(chǔ)#include int main() void average(float *p,int n); void search(float (*p)4,int n); float score34=65,67,70,60, 80,87,90,81,90,99,100,98; average(*score,12); search(score,2); return 0;score00的地址的地址程序設(shè)計(jì)基礎(chǔ)void average(float *p,int n) float *p_end; float sum=0,aver; p_end=p+n-1;

41、 for( ;p=p_end; p+) sum=sum+(*p); aver=sum/n; printf(average=%5.2fn,aver);6567706080879081909910098pp_endp+1程序設(shè)計(jì)基礎(chǔ)void search(float (*p)4,int n) int i; printf(The score of No.%d are:n,n); for(i=0;i4;i+) printf(%5.2f ,*(*(p+n)+i); printf(n);6567706080879081909910098pp+2程序設(shè)計(jì)基礎(chǔ)7.4.1數(shù)組元素作函數(shù)實(shí)參數(shù)組元素作函數(shù)實(shí)參7.

42、4.2數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù)7.4.3多維數(shù)組名作函數(shù)參數(shù)多維數(shù)組名作函數(shù)參數(shù)程序設(shè)計(jì)基礎(chǔ) 例例7.9 輸入輸入10個(gè)數(shù),要求輸出其中值個(gè)數(shù),要求輸出其中值最大的元素和該數(shù)是第幾個(gè)數(shù)。最大的元素和該數(shù)是第幾個(gè)數(shù)。程序設(shè)計(jì)基礎(chǔ)解題思路:解題思路:u定義數(shù)組定義數(shù)組a,用來(lái)存放,用來(lái)存放10個(gè)數(shù)個(gè)數(shù)u設(shè)計(jì)函數(shù)設(shè)計(jì)函數(shù)max,用來(lái)求兩個(gè)數(shù)中的大者,用來(lái)求兩個(gè)數(shù)中的大者u在主函數(shù)中定義變量在主函數(shù)中定義變量m,初值為,初值為a0,每次調(diào)用每次調(diào)用max函數(shù)后的返回值存放在函數(shù)后的返回值存放在m中中u用用“打擂臺(tái)打擂臺(tái)”算法,依次將數(shù)組元素算法,依次將數(shù)組元素a1到到a9與與m比較,最后得到的

43、比較,最后得到的m值值就是就是10個(gè)數(shù)中的最大者個(gè)數(shù)中的最大者程序設(shè)計(jì)基礎(chǔ)#include int main() int max(int x,int y); int a10,m,n,i; printf(“10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&ai); printf(n);程序設(shè)計(jì)基礎(chǔ) for(i=1,m=a0,n=0;im) m=max(m,ai); n=i; printf(“l(fā)argest number is %dn,m); printf(“%dth number.n“,n+1);int max(int x,int y) r

44、eturn(xy?x:y); 程序設(shè)計(jì)基礎(chǔ)除了可以用數(shù)組元素作為函數(shù)參數(shù)外除了可以用數(shù)組元素作為函數(shù)參數(shù)外,還可以用數(shù)組名作函數(shù)參數(shù),還可以用數(shù)組名作函數(shù)參數(shù)(包括實(shí)包括實(shí)參和形參參和形參)用數(shù)組元素作實(shí)參時(shí),向形參變量傳用數(shù)組元素作實(shí)參時(shí),向形參變量傳遞的是數(shù)組元素的值遞的是數(shù)組元素的值用數(shù)組名作函數(shù)實(shí)參時(shí),向形參用數(shù)組名作函數(shù)實(shí)參時(shí),向形參 傳遞傳遞的是數(shù)組首元素的地址的是數(shù)組首元素的地址程序設(shè)計(jì)基礎(chǔ) 例例7.10 有一個(gè)一維數(shù)組有一個(gè)一維數(shù)組score,內(nèi)放,內(nèi)放10個(gè)學(xué)生成績(jī),求平均成績(jī)。個(gè)學(xué)生成績(jī),求平均成績(jī)。解題思路:解題思路:u用函數(shù)用函數(shù)average求平均成績(jī),用數(shù)組名求平均

45、成績(jī),用數(shù)組名作為函數(shù)實(shí)參,形參也用數(shù)組名作為函數(shù)實(shí)參,形參也用數(shù)組名u在在average函數(shù)中引用各數(shù)組元素,求函數(shù)中引用各數(shù)組元素,求平均成績(jī)并返回平均成績(jī)并返回main函數(shù)函數(shù)程序設(shè)計(jì)基礎(chǔ)#include int main() float average(float array10); float score10,aver; int i; printf(input 10 scores:n); for(i=0;i10;i+) scanf(%f,&scorei); printf(n); aver=average(score); printf(%5.2fn,aver); return

46、0; 定義實(shí)參數(shù)組定義實(shí)參數(shù)組程序設(shè)計(jì)基礎(chǔ)float average(float array10) int i; float aver,sum=array0; for(i=1;i10;i+) sum=sum+arrayi; aver=sum/10; return(aver);定義形參數(shù)組定義形參數(shù)組相當(dāng)于相當(dāng)于score0相當(dāng)于相當(dāng)于scorei程序設(shè)計(jì)基礎(chǔ) 例例7.11 有兩個(gè)班級(jí),分別有有兩個(gè)班級(jí),分別有35名和名和30名學(xué)生,調(diào)用一個(gè)名學(xué)生,調(diào)用一個(gè)average函數(shù),分別求函數(shù),分別求這兩個(gè)班的學(xué)生的平均成績(jī)。這兩個(gè)班的學(xué)生的平均成績(jī)。程序設(shè)計(jì)基礎(chǔ)解題思路:解題思路:u需要解決怎樣用同

47、一個(gè)函數(shù)求兩個(gè)不同長(zhǎng)度的需要解決怎樣用同一個(gè)函數(shù)求兩個(gè)不同長(zhǎng)度的數(shù)組的平均值的問(wèn)題數(shù)組的平均值的問(wèn)題u定義定義average函數(shù)時(shí)不指定數(shù)組的長(zhǎng)度,在函數(shù)時(shí)不指定數(shù)組的長(zhǎng)度,在形參表中增加一個(gè)整型變量形參表中增加一個(gè)整型變量iu從主函數(shù)把數(shù)組實(shí)際長(zhǎng)度從實(shí)參傳遞給形參從主函數(shù)把數(shù)組實(shí)際長(zhǎng)度從實(shí)參傳遞給形參iu這個(gè)這個(gè)i用來(lái)在用來(lái)在average函數(shù)中控制循環(huán)的次數(shù)函數(shù)中控制循環(huán)的次數(shù)u為簡(jiǎn)化,設(shè)兩個(gè)班的學(xué)生數(shù)分別為為簡(jiǎn)化,設(shè)兩個(gè)班的學(xué)生數(shù)分別為5和和10程序設(shè)計(jì)基礎(chǔ)#include int main() float average(float array ,int n); float score

48、15=98.5,97,91.5,60,55; float score210=67.5,89.5,99,69.5, 77,89.5,76.5,54,60,99.5; printf(“%6.2fn”,average(score1,5); printf(“%6.2fn”,average(score2,10); return 0;程序設(shè)計(jì)基礎(chǔ)float average(float array ,int n) int i; float aver,sum=array0; for(i=1;in;i+) sum=sum+arrayi; aver=sum/n; return(aver);調(diào)用形式為調(diào)用形式為av

49、erage(score1,5)時(shí)時(shí)相當(dāng)于相當(dāng)于score10相當(dāng)于相當(dāng)于score1i相當(dāng)于相當(dāng)于5程序設(shè)計(jì)基礎(chǔ)float average(float array ,int n) int i; float aver,sum=array0; for(i=1;in;i+) sum=sum+arrayi; aver=sum/n; return(aver);調(diào)用形式為調(diào)用形式為average(score2,10)時(shí)時(shí)相當(dāng)于相當(dāng)于score20相當(dāng)于相當(dāng)于score2i相當(dāng)于相當(dāng)于10程序設(shè)計(jì)基礎(chǔ) 例例7.12用選擇法對(duì)數(shù)組中用選擇法對(duì)數(shù)組中10個(gè)整數(shù)按由個(gè)整數(shù)按由小到大排序。小到大排序。解題思路:解題

50、思路:u所謂選擇法就是先將所謂選擇法就是先將10個(gè)數(shù)中最小的數(shù)與個(gè)數(shù)中最小的數(shù)與a0對(duì)換對(duì)換;再將再將a1到到a9中最小的數(shù)與中最小的數(shù)與a1對(duì)換對(duì)換每比較一輪每比較一輪,找出一個(gè)未經(jīng)排找出一個(gè)未經(jīng)排序的數(shù)中最小的一個(gè)序的數(shù)中最小的一個(gè)u共比較共比較9輪輪程序設(shè)計(jì)基礎(chǔ)a0 a1 a2 a3 a4 3 6 1 9 4 1 6 3 9 4 1 3 6 9 4 1 3 4 9 6 1 3 4 6 9小到大排序小到大排序程序設(shè)計(jì)基礎(chǔ)#include int main() void sort(int array,int n); int a10,i; printf(enter array:n); for(

51、i=0;i10;i+) scanf(%d,&ai); sort(a,10); printf(The sorted array:n); for(i=0;i10;i+) printf(%d ,ai); printf(n); return 0; 程序設(shè)計(jì)基礎(chǔ)void sort(int array,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(arrayjarrayk) k=j; t=arrayk; arrayk=arrayi; arrayi=t; 在在sortisort9中,中,最小數(shù)與最小數(shù)與sorti對(duì)換對(duì)換程

52、序設(shè)計(jì)基礎(chǔ) 例例7.13 有一個(gè)的矩陣,求所有有一個(gè)的矩陣,求所有元素中的最大值。元素中的最大值。解題思路:先使變量解題思路:先使變量max的初值等于的初值等于矩陣中第一個(gè)元素的值,然后將矩陣矩陣中第一個(gè)元素的值,然后將矩陣中各個(gè)元素的值與中各個(gè)元素的值與max相比,每次比相比,每次比較后都把較后都把“大者大者”存放在存放在max中,全中,全部元素比較完后,部元素比較完后,max 的值就是所有的值就是所有元素的最大值。元素的最大值。程序設(shè)計(jì)基礎(chǔ)#include int main() int max_value(int array4); int a34=1,3,5,7,2,4,6,8, 15,1

53、7,34,12; printf(“Max value is %dn”, max_value(a); return 0;可以省略可以省略不能省略不能省略要與要與形參數(shù)組第形參數(shù)組第二二維大小維大小相同相同程序設(shè)計(jì)基礎(chǔ)int max_value(int array4) int i,j,max; max = array00; for (i=0;i3;i+) for(j=0;jmax) max = arrayij; return (max);要與實(shí)參要與實(shí)參數(shù)組第數(shù)組第二二維大小維大小相同相同程序設(shè)計(jì)基礎(chǔ)輸入輸入5個(gè)整數(shù),將它們存入數(shù)組個(gè)整數(shù),將它們存入數(shù)組a中,再輸入中,再輸入1個(gè)數(shù)個(gè)數(shù)x,然后在數(shù)

54、組中查找然后在數(shù)組中查找x,如果找到,如果找到,輸出相應(yīng)的位置,否則,輸出輸出相應(yīng)的位置,否則,輸出“Not Found”。輸入:輸入:2 9 8 9 6 9輸出:輸出:1輸入:輸入:2 9 8 9 6 7輸出:輸出:Not Found綜合例題:綜合例題:在數(shù)組中查找一個(gè)給定的數(shù)在數(shù)組中查找一個(gè)給定的數(shù)程序設(shè)計(jì)基礎(chǔ)#include int main(void) int i, x; int a5; printf(Enter 5 integers: ); for(i = 0; i 5; i+) scanf(%d, &ai); printf(Enter x: ); scanf(%d, &am

55、p;x); for(i = 0; i 5; i+) if(ai = x) printf(Index is %dn, i+1); break; if(i= 5) printf(Not Foundn); return 0; Enter 5 integers: 2 9 8 1 9Enter x: 9Index is 1Enter 5 integers: 2 9 8 1 9Enter x: 7Not Found程序設(shè)計(jì)基礎(chǔ)#include int main(void) int i, a10,n; void reverse(int p , int n); printf(Enter n: ); scanf

56、(%d, &n); printf(Enter %d integers: , n); for(i = 0; i n; i+) scanf(%d, &ai); for(i=0, j=n-1; ij; i+, j-) t = ai; ai = aj; aj = t; for(i = 0; i n; i+) printf(%dt, ai);return 0; Enter n:10Enter 10 integers: 10 9 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 10綜合例題:將數(shù)組元素逆序存放綜合例題:將數(shù)組元素逆序存放程序設(shè)計(jì)基礎(chǔ)7.5 動(dòng)態(tài)創(chuàng)建數(shù)組動(dòng)態(tài)

57、創(chuàng)建數(shù)組對(duì)內(nèi)存的動(dòng)態(tài)分配是通過(guò)系統(tǒng)提供的庫(kù)函數(shù)對(duì)內(nèi)存的動(dòng)態(tài)分配是通過(guò)系統(tǒng)提供的庫(kù)函數(shù)來(lái)實(shí)現(xiàn)的,主要有來(lái)實(shí)現(xiàn)的,主要有malloc,calloc,free這這3個(gè)函數(shù)。個(gè)函數(shù)。程序設(shè)計(jì)基礎(chǔ)malloc函數(shù)函數(shù)其函數(shù)原型為其函數(shù)原型為 void *malloc(unsigned int size); u其作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一個(gè)長(zhǎng)度其作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一個(gè)長(zhǎng)度為為size的連續(xù)空間的連續(xù)空間u函數(shù)的值是所分配區(qū)域的第一個(gè)字節(jié)的地址,函數(shù)的值是所分配區(qū)域的第一個(gè)字節(jié)的地址,或者說(shuō),此函數(shù)是一個(gè)指針型函數(shù),返回的指或者說(shuō),此函數(shù)是一個(gè)指針型函數(shù),返回的指針指向該分配域的開(kāi)頭位置針指向該分配域的開(kāi)頭位置程序設(shè)計(jì)基礎(chǔ) malloc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論