c++將數(shù)組名作為函數(shù)參數(shù)對數(shù)組元素進行相應(yīng)的運算
來源:易賢網(wǎng) 閱讀:938 次 日期:2014-08-20 15:24:32
溫馨提示:易賢網(wǎng)小編為您整理了“c++將數(shù)組名作為函數(shù)參數(shù)對數(shù)組元素進行相應(yīng)的運算”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了c++將數(shù)組名作為函數(shù)參數(shù)對數(shù)組元素進行相應(yīng)的運算,需要的朋友可以參考下

用數(shù)組名做函數(shù)參數(shù)與用數(shù)組元素作實參有幾點不同:

(1)用數(shù)組元素作實參時,只要數(shù)組類型和函數(shù)的形參變量的類型一致,那么作為下標(biāo)變量的數(shù)組元素的類型也和函數(shù)形參變量的類型是一致的。因此,并不要求函數(shù)的形參也是下標(biāo)變量。換句話說,對數(shù)組元素的處理是按普通變量對待的。用數(shù)組名作函數(shù)參數(shù)時,則要求形參和相應(yīng)的實參都必須是類型相同的數(shù)組,都必須有明確的數(shù)組說明。當(dāng)形參和實參兩者類型不一致時,將會發(fā)生錯誤。

(2)用普通變量或下標(biāo)變量作函數(shù)參數(shù)時,形參變量和實參變量都是由編譯系統(tǒng)分配的兩個不同的內(nèi)存單元。在函數(shù)調(diào)用時進行的值傳遞是把實參變量的值賦予形參變量。在用數(shù)組名做函數(shù)參數(shù)時,不是進行值的傳遞,即不是把實參數(shù)組的每一個元素的值都賦予形參數(shù)組的各個元素。因為實際上形參數(shù)組并不存在,編譯系統(tǒng)不為形參數(shù)組分配內(nèi)存。因為數(shù)組名就是數(shù)組的首地址。因此用數(shù)組名做函數(shù)參數(shù)時所進行的傳遞實際上是地址的傳遞,也就是把實參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址后,也就等于有了具體的地址。實際上是形參數(shù)組和實參數(shù)組為同一數(shù)組,共同使用一段內(nèi)存空間。

代碼如下:

//例:一維數(shù)組score,存放10個學(xué)生的成績,求平均值。

#include

#include

#include

#include

float average(float array[10])

{ int i;

float aver,sum=array[0];

for(i=1; i<10; i++)

sum=sum+array[i];

aver=sum/10;

return aver;

}

void main()

{ float score[10],aver;

int i;

printf("input 10 score:n");

for(i=0; i<10; i++)

scanf("%f",&score[i]);

printf("n");

aver=average(score);

printf("average score is %5.2fn",aver);

}

說明:

(1)用數(shù)組名作函數(shù)參數(shù),應(yīng)該在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組。

(2)實參數(shù)組與形參數(shù)組類型應(yīng)一致,如不一致,結(jié)果將出錯。

(3)實際上,指定被調(diào)函數(shù)中形參數(shù)組的大小是不起任何作用的,因為C編譯器對形參數(shù)組大小不做檢查,只是將形參數(shù)組的首地址傳給形參數(shù)組。

(4)形參數(shù)組也可以不指定大小,定義數(shù)組時在數(shù)組名后跟一個空的中括號,為了在被調(diào)函數(shù)中處理數(shù)組元素的需要,可以另設(shè)一個參數(shù),傳遞數(shù)組元素的個數(shù)。

代碼如下:

#include

#include

#include

#include

float average(float array[],int n)

{ int i;

float aver,sum=array[0];

for(i=1; i

sum=sum+array[i];

aver=sum/n;

return aver;

}

void main()

{ float score1[5]= {98.5,97,91.5,60,55};

float score2[10]= {67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};

printf("the average of class A is %6.2fn",average(score1,5));

printf("the average of class B is %6.2fn",average(score2,10));

}

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)