1 5 C的主調函式與引數

2021-06-22 19:53:32 字數 1937 閱讀 1052

c語言裡的主調函式

在 a 函式裡面呼叫了 b 函式,那麼 a 函式就是【主調函式】,b 函式式【被調函式】。【主調函式】其實是乙個【相對的概念】,它是相對於【被掉函式】來說的。在 c 語言裡面,main 函式程式的入口,也就是說程式執行起來,main 函式是第一被呼叫的函式。接下來,不論你要呼叫任何其他函式,都必須在 main 函式裡面呼叫,這時候 main 函式就是【主調函式】。也即是說,main 函式一般作為主調函式的。反過來,主調函式不一定就只有 main 函式,其他函式只要在內部呼叫了任何函式,那麼它也是主調函式了。

函式的引數

函式的引數分為形參和實參兩種。形參出現在函式定義中,在整個函式體內都可以使用,離開該函式則不能使用。實參出現在主調函式中,進入被調函式後,實參變數也不能使用。形參和實參的功能是作資料傳送。發生函式呼叫時,主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。函式的形參和實參具有以下特點:

1. 形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。函式呼叫結束返回主調函式後則不能再使用該形參變數。

2. 實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。

3. 實參和形參在數量上,型別上,順序上應嚴格一致,否則會發生型別不匹配」的錯誤。4. 函式呼叫中發生的資料傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

argc和argv中的arg指的是"引數

"(外語

arguments,argument counter 和 argument vector ) [1]

至少有兩個引數至主函式

:argc和argv;

首先是乙個至算提供的引數到程式,

第二個是對字串陣列的指標

。[1]

argc,argv 用命令列編譯程式時有用。

主函式main中變數(int argc,char *argv[ ])的含義

有些編譯器允許將main()的返回型別宣告為void,這已不再是合法的c++

main(int argc, char *argv[ ],char **env)才是unix和linux中的標準寫法。

argc: 整數,用來統計你執行程式時送給main函式的命令列引數的個數

* argv[ ]: 字串陣列,用來存放指向你的字串引數的指標陣列,每乙個元素指向乙個引數

argv[0] 指向程式執行的全路徑名

argv[1] 指向在dos命令列中執行程式名後的第乙個字串

argv[2] 指向執行程式名後的第二個字元

argv[argc]為null。

**env:字串陣列。env[ ]的每乙個元素都包含envvar=value形式的字元

串。其中envvar為環境變數,value 為envvar的對應值。

argc, argv,env是在main( )函式之前被賦值的,編譯器生成的可執行檔案,main( )不是真正的入口點,而是乙個標準的函式,這個函式名與具體的作業系統有關。

#include

intmain(intargc,char*argv)

編譯該程式:gcc -o edit edit.c

執行:〉edit

結果:請輸入想要編輯的檔名如:fillname

執行:〉edit f1.txt

結果:編輯 f1.txt

執行edit時,argc為1,argv[0]指向edit

而執行edit f1.txt時,argc的值為2,argv[0]指向edit,argv[1]指向f1.txt

15 C 析構函式與變數生命週期

建構函式負責初始化物件 並分配資源,析構函式用於抹除資料並釋放資源 include include using namespace std class store store void char p mem int main void cout main函式出口 endl return0 函式傳參為...

c語言中的主調函式與被調函式

被呼叫的函式為被調函式,呼叫該函式的函式為主調函式。這樣說可能讓人一臉懵逼 舉例 main int max float x,float y 其中main 是主調函式,因為其中 c max a,b 呼叫了 被調函式 max。主調函式與背調函式是成對出現的,是主動和被動的關係,現在有a b兩個函式,a函...

h5棋牌專案 15 C 與C 通訊

參考資料 c 與c 通訊 c 和c 的socket通訊 c 與c 的通訊 問題點數 30分 windows下c 程式與c 程式間通訊 c include include include using namespace std int main 開啟管道檔案以便讀寫,實際上連線到命名管道伺服器程式 h...