C語言 函式(main,預設引數用巨集替換實現)

2021-10-08 00:23:55 字數 1652 閱讀 8787

乙個c程式總是從main()函式開始執bai行的,但是不一定都在main函式最後結束。

main函式命令列引數的多種表示形式:

1、int

main

(void

)2、int

main

(int argc,

char

*ar**)

=int

main

(int argc,

char

**ar**)

.(參照arguments to main和c++ primer7.

2.6節)

1、int argc (引數個數,函式名作為第乙個傳參) arg是指arguments,即引數

argc=

1:此時只有乙個程式名稱(程式名儲存在ar**[

0]中),而無其他函式傳參

2、char

**ar** 即char

*ar**[

] 指標陣列,存放命令列引數(空白符分隔)

ar**[

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

ar**[

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

ar**[

2] 指向執行程式名後的第二個字串

...ar**[argc] 為null(因為是從0開始的)

函式呼叫的形式: 函式名(實參1,實參2,實參3 ,… ,實參n)

實參可以是具有確定值的常量、變數、表示式、函式等

例如:

func

(rec1,rec2+rec3,

(rec4,rec5));

f(m+n,x+y,

f(m+n,z,

(x,y)))

;實參1

=rec1 m+n

實參2=rec2+rec3 x+y

實參3=

(rec4,rec5)

f(m+n,z,

(x,y)

)故實參個數為3.

int

fun(

int a,

int b =

10) 預設引數僅在c++中可行,c中不支援

主函式**:

intmain()

c++中預設引數:

預設實參作為形參的初始值出現在形參列表中。我們可以為乙個或多個形參定義預設值,不過需要注意一點的是,一旦某個形參被賦予了預設值,它後面的所有形參都必須有預設值;

例項:函式宣告方式:

如int add(int x,int y=5,int z=6); int add(int x=1,int y=5,int z=6);

但如下不合理:int add(int x=1,int y=5,int z); int add(int x=1,int y,int z=6);

#include

#define funi(a) fun( a, 10) 用巨集替換實現預設引數b=10

intfun

(int a,

int b )

intmain()

C語言main函式引數

c語言main函式引數 int main int argc char argv 或者是 int main int argc,char argv argc 命令列總的引數的個數 以空白符分隔 argv 字串指標陣列 陣列內存放指向char型別的指標 用來存放指向字串引數的指標陣列,每個元素指向乙個引數...

C語言main函式的引數

一般的的main函式都是不帶引數的。因此main 後的括號都是空括號。實際上,main函式可以帶引數,這個引數可以認為是main函式的形式引數。c語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main argc,argv c語言還規定...

C語言 main 函式帶引數

想必我們都知道函式是帶有從引數的。但是似乎,很少考慮過主函式 main 帶引數。不帶引數的main函式格式為 main 它實際上是 main void 的簡寫 c語言中如果主函式需要帶引數,帶引數的main函式格式為 main int argc,char ar 也可寫成 main int argc,...