首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C/C++ 函式呼叫與回傳值機制深度解析

     編輯:關於C++

函式參數傳遞與呼叫機制核心概念整理。

函式呼叫三大作用

  1. 實參向形參傳遞資料
  2. 為形參與區域變數配置儲存空間
  3. 中斷呼叫函式流程,轉入被呼叫函式入口執行

參數表為空表示不接收資料。

傳值呼叫

形參僅在呼叫時配置記憶體,返回時釋放。形參與實參各佔獨立記憶體,**無法改變呼叫端變數值**。

傳址呼叫

傳遞變數位址,雖各自操作各自變數,但位址相同,**被呼叫函式可修改呼叫端變數值**。

回傳指標的函式

C 語言回傳類型可為除陣列、函式外的任何類型,含指標。關鍵限制:**不可回傳自動區域變數位址**(返回時已銷毀),全域變數無需回傳位址。回傳位址應為靜態區域變數或動態配置記憶體。

範例:字串查找字元


// 正確:回傳參數字串內部位址
extern char *strchr(char *str, char character) {
    while (*str != character) str++;
    return str;
}

// 錯誤:回傳區域陣列位址
char *strchr(char *str, char character) {
    char* substr;
    substr[0] = str[0];
    return substr;  // 回傳無效位址,得亂碼
}

傳址呼叫與回傳指標本質不同:前者透過參數傳遞位址,後者以傳值方式回傳位址資料。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved