位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 數(shù)組元素作為函數(shù)參數(shù)

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01

    數(shù)組元素就是下標(biāo)變量,它與普通變量并無(wú)區(qū)別。數(shù)組元素只能用作函數(shù)實(shí)參,使用方法與普通變量相同。形參是一個(gè)普通變量。參數(shù)傳遞過(guò)程為,在發(fā)生函數(shù)調(diào)用時(shí),把數(shù)組元素的值傳送給形參,實(shí)現(xiàn)單向值傳送。

【例題】判斷字符串中單詞數(shù)量

判斷一字符串中有多少個(gè)單詞,每個(gè)空格隔開(kāi)的是兩個(gè)單詞。

算法分析:

只需要統(tǒng)計(jì)這個(gè)字符串中有多少個(gè)空格,然后在空格的個(gè)數(shù)上加1就是單詞的個(gè)數(shù)。加1是因?yàn)樽詈笠粋€(gè)單詞后面沒(méi)有空格。

把判斷是否是空格的過(guò)程定義為一個(gè)函數(shù)ispaceO,實(shí)參是字符數(shù)組中的每個(gè)元素,形參是一個(gè)字符型變量。

ispaceO函數(shù)判斷每個(gè)傳遞過(guò)來(lái)的實(shí)參,如果是空格,返回1,否則返回0。main()函數(shù)中,通過(guò)一個(gè)循環(huán)將每個(gè)字符數(shù)組元素傳遞給ispaceO函數(shù)進(jìn)行判斷,如果是0,單詞個(gè)數(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]))

    /* 將每個(gè)字符作為實(shí)參調(diào)用count()函數(shù),如果結(jié)束函數(shù)調(diào)用返回值為i,是一個(gè)空格,說(shuō)明是一個(gè)單詞*/ 

        n++:

    }

    printf("The number words in dialoag is %d\n",n+l);

}

通過(guò)【例題】可以看出以下幾點(diǎn):

(1)用數(shù)組元素作實(shí)參時(shí),只要數(shù)組類(lèi)型和函數(shù)的形參類(lèi)型一致即可,并不要求函數(shù)的形參也是下標(biāo)變量。換句話(huà)說(shuō),對(duì)數(shù)組元素的處理是按普通變量對(duì)待的。

(2)和普通變量做實(shí)參一樣,數(shù)組元素作為實(shí)參在參數(shù)傳遞過(guò)程中也是值傳遞的形式。形參變量和實(shí)參數(shù)組元素是由編譯系統(tǒng)分配的兩個(gè)不同的內(nèi)存單元,在函數(shù)調(diào)用時(shí)只是將實(shí)參數(shù)組元素的值賦予形參變量,形參的改變并不能帶回實(shí)參數(shù)組元素。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部