c語言main函數可以傳參數嗎,main函數傳入的參數怎麼使用

本文目錄一覽:

C語言深度總結[全面認識main函數傳遞參數]

        argc和argv是main函數的形式參數。這兩個形式參數的類型是系統規定的。如果main函數要帶參數,就是這兩個類型的參數;否則main函數就沒有參數。

堅持使用標準的意義在於:當你把程序從一個編譯器移到另一個編譯器時,照樣能正常運行。

     由於是 int main( ..) 那麼當時 應當返回 int 但是return 2.3 ;也能運行正確,這是因為編譯器自動轉換2.3為int,截斷後為return 2;  

     如果寫為 return “abc”;那麼會報錯,  error C2440: “return”: 無法從“const char [4]”轉換為“int”。

        變量名稱argc和argv是常規的名稱,當然也可以換成其他名稱。那麼,實際參數是如何傳遞給main函數的argc和argv的呢?我們知道,C程序在編譯和鏈接後,都生成一個可執行文件。也可以在命令行下帶參數執行,命令行執行的形式為:可執行文件名稱 參數1 參數2 … … 參數n。可執行文件名稱和參數、參數之間均使用空格隔開。

如果按照這種方法執行,命令行字符串將作為實際參數傳遞給main函數。具體為:

(1) 可執行文件名稱和所有參數的個數之和傳遞給argc;

(2) 可執行文件名稱(包括路徑名稱)作為一個字符串,首地址被賦給argv[0],參數1也作為一個字符串,首地址被賦給argv[1],… …依次類推。

字符串arav[i](i=1,…argc-1)表式第 i 個程序參數,標準C 要求argv[argc]是個null指針,但在有些舊時編譯器中卻不是這樣的,argv向量以及它所指向的字符串必須是可以修改的,並且他們的值在程序執行期間不能被編譯器或操作系統所修改。如果編譯器並不允許大小寫混合的字符串 ,則存儲在argv中的字符串必須採用小寫形式。

1.給main函數傳遞參數只有一種方式,即main(int argc, char *argv[])。第一個參數必須int,第二個(如果有的話)必須是char**或char *argv[]。

2.argc代表傳入參數的個數,argv是一個數組,每個元素都是一個char *。字符串arav[i](i=1,…argc-1)表式第 i 個程序參數,標準C 要求argv[argc]是個null指針。

3.main函數參數理論上支持“無數”個,且參數在進程內支持修改。

c語言中main函數的參數

main函數可以不帶參數,也可以帶參數,這個參數可以認為是 main函數的形式參數。

C語言規定main函數的參數只能有兩個,還規定argc(第一個形參)必須是整型變量,argv( 第二個形參)必須是指向字符串的指針數組。加上形參說明後,main函數的函數頭應寫為:

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

由於main函數不能被其它函數調用,因此不可能在程序內部取得實際值。那麼,在何處把實參值賦予main函數的形參呢? 實際上,main函數的參數值是從操作系統命令行上獲得的。當我們要運行一個可執行文件時,在DOS提示符下鍵入文件名,再輸入實際參數即可把這些實參傳送到main的形參中去。

DOS提示符下命令行的一般形式為:

C:\可執行文件名 參數 參數……

c語言和c++中主函數main()的括號中為什麼可以有參數

這是因為:主函數main並非程序的真正入口!在編譯器對你的工程文件進行編譯時,它是先找到你的main函數,然後根據main函數類型,把一段前綴入口程序預先編譯,再讓它去調用main函數.當你的main函數需要參數時,它就編譯有參數main函數調用,反之則編譯無參數main函數調用.所以編譯器是自動識別你的main函數類型的!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245812.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:11
下一篇 2024-12-12 13:11

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論