C語言 數(shù)組元素作為函數(shù)參數(shù)
數(shù)組元素就是下標(biāo)變量,它與普通變量并無區(qū)別。數(shù)組元素只能用作函數(shù)實參,使用方法與普通變量相同。形參是一個普通變量。參數(shù)傳遞過程為,在發(fā)生函數(shù)調(diào)用時,把數(shù)組元素的值傳送給形參,實現(xiàn)單向值傳送。
【例題】判斷字符串中單詞數(shù)量
判斷一字符串中有多少個單詞,每個空格隔開的是兩個單詞。
算法分析:
只需要統(tǒng)計這個字符串中有多少個空格,然后在空格的個數(shù)上加1就是單詞的個數(shù)。加1是因為最后一個單詞后面沒有空格。
把判斷是否是空格的過程定義為一個函數(shù)ispaceO,實參是字符數(shù)組中的每個元素,形參是一個字符型變量。
ispaceO函數(shù)判斷每個傳遞過來的實參,如果是空格,返回1,否則返回0。main()函數(shù)中,通過一個循環(huán)將每個字符數(shù)組元素傳遞給ispaceO函數(shù)進(jìn)行判斷,如果是0,單詞個數(shù)+1。
程序代碼如下:
#include <stdio.h>
int ispace(char c)
{
if(c==' ') /* 如果是空格,返回1,否則返回0 */
return 1;
return 0;
}
main()
{
char str [30];
int n=0,i;
printf("input a string!\n");
gets(str);
for(i=0;str[i]!=0;i++)
{
if(ispace (str[i]))
/* 將每個字符作為實參調(diào)用count()函數(shù),如果結(jié)束函數(shù)調(diào)用返回值為i,是一個空格,說明是一個單詞*/
n++:
}
printf("The number words in dialoag is %d\n",n+l);
}
通過【例題】可以看出以下幾點:
(1)用數(shù)組元素作實參時,只要數(shù)組類型和函數(shù)的形參類型一致即可,并不要求函數(shù)的形參也是下標(biāo)變量。換句話說,對數(shù)組元素的處理是按普通變量對待的。
(2)和普通變量做實參一樣,數(shù)組元素作為實參在參數(shù)傳遞過程中也是值傳遞的形式。形參變量和實參數(shù)組元素是由編譯系統(tǒng)分配的兩個不同的內(nèi)存單元,在函數(shù)調(diào)用時只是將實參數(shù)組元素的值賦予形參變量,形參的改變并不能帶回實參數(shù)組元素。
點擊加載更多評論>>