C/C++函數調用與函數傳回值

來源:互聯網
上載者:User

函數參數與函數調用

1、函數調用的作用:

·用實參數向形式參數傳遞資料;

·為獲得資料參數及在函數體中聲明的變數分配儲存空間;

·中斷現行(調用)函數,把流程向被調用函數的入口處,開始執行被調函數。

當參數表為空白時,表示該函數不從調用函數接受資料。

2、數值參數

傳值調用:形參只有在函數被調用時,才被分配記憶體地區,並一直保留到函數返回時被撤銷為止。形參和實參只是名字相同,各自佔有各自的記憶體空間和生存周期,因此他並不能改變主調函數中的變數。

3、地址參數

傳址調用:傳送的是變數的地址,儘管主函數和被調函數各自在自己的變數上操作,但他們的地址是一樣,所以被調函數可以改變調用函數中變數的值。

返回指標的函數

在C語言中,函數的傳回型別可以是除數組和函數以外的任何類型,包括返回一個指標類型的資料。

例子1:// 尋找字串中指定字元的原函數

extern char *strchr(char *str,char character)
{
while(*str!=character)
str++;
return(str);
}
··

注意... 與傳址調用不同,返回指標的函數是以傳值方式向調用函數返回資料的。因此不可用 自動變數的地址 作為傳回值,因為這類變數在返回時將被撤銷。而全域變數又用不著返回地址。因此,返回的地址變數應是局部變數的或者動態。

例子2://錯誤的 得到的是亂碼

char *strchr(char *str,char character)
{
char* substr;
substr[0]=str[0];
return substr;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.