C語言之main函數傳參

1:爲何須要給main函數傳參數組

  首先要明白一點,給mian函數傳參不是必須的,可是有時候咱們須要經過給main函數不一樣的參數來獲得的不一樣的結果,好比咱們但願main函數中某個變量的值爲0時執行子函數A,該變量值爲1時執行子函數B,那麼這個時候就能夠經過給main函數傳參來實現,mian函數傳參格式以下:ide

int main(int argc , char *argv[])
int main(int argc , char **argv)

參數解釋:函數

argc:int類型的參數,表示給mian函數傳遞了多少個參數spa

argv 一個字符數組(或者是二重指針),這個數組用來存放多個字符串,每一個字符串就是咱們給main函數傳遞的一個參數,須要注意的是咱們./a.out執行這個程序時也算是給main函數傳遞了一個參數操作系統

2:誰給main函數傳參指針

  在普通的函數a中,它裏面的參數是由調用函數a的函數b傳遞的,一樣的,main函數的傳參也是有調用main函數的「函數」給main函數傳參的,可是咱們知道,main函數是一個程序的入口函數,因此給main函數傳參的是調用這個程序的一個程序,也就是main函數所在的父進程,而且由這個父進程接受main函數的返回值。進程

3:main函數傳參的本質字符串

 程序調用有各類方法可是本質上都是父進程fork一個子進程,而後子進程和一個程序綁定起來去執行(exec函數族),咱們在exec的時候能夠給他同時傳參。程序調用時能夠被傳參(也就是main的傳參)是操做系統層面的支持完成的。舉個簡單的例子,當咱們在控制檯下面輸入./a.out去執行一個程序的時候,其本質是控制檯進程建立了一個子進程去調用咱們./a.out這個可執行程序,並負責給這個程序的入口函數也就是main函數傳參,並接收其返回值。
it

相關文章
相關標籤/搜索