位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

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

提問人:劉團圓發(fā)布時間:2020-12-01

    數(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ù)進行判斷,如果是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ù)組元素。

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

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