【C語言學習】main()函數(shù)有幾種寫法?

在C語言中,main函數(shù)是程序的入口。其有四種寫法,即:

//寫法一
main()
{
 printf("Hello notepad++ \n");
}

//寫法二
int main(void)
{
 printf("Hello notepad++ \n");
 
 return 0;
}

//寫法三
void main()
{
 printf("Hello notepad++ \n");
}

//寫法四
int main(int argc, char *argv[])
{
 printf("Hello notepad++ \n");
}

前面三種不帶參數(shù)的都是比較常見的寫法。第四種寫法帶的兩個參數(shù)是什么意思呢?下面簡單來介紹一下。首先,主函數(shù)不能被其他函數(shù)調(diào)用,所以形參argcargv的實際值就不能從其他函數(shù)傳入,那么其實參應該從哪傳入呢?是從操作系統(tǒng)命令行上獲得的。因此這兩個參數(shù)也被稱為命令行參數(shù),argc為命令行參數(shù)的個數(shù),argv為字符串命令行參數(shù)的首地址。

下面看一個代碼實例:

#include <stdio.h>

//寫法四
int main(int argc, char *argv[])
{
 int i;
 
 printf("<<<< argument list >>>>\n");
 printf("argc = %d\n", argc);
 for ( i = 0; i < argc; i++ )
 {
   printf("argv[%d] = %s\n",i, argv[i]);
 }
 printf("Hello notepad++ \n");
 
 return 0;
}

我的C開發(fā)環(huán)境為:MinGW+notepad++。鍵入組合鍵【win+r】打開運行窗口,輸入cmd并回車進入命令行環(huán)境:

輸入gcc hello.c -o hello.exe命令進行編譯,再輸入hello.exe cmd1 cmd2 cmd3 cmd4 cmd5(DOS提示符下命令行的一般形式為: C:\>可執(zhí)行文件名 參數(shù) 參數(shù)……)對main函數(shù)進行傳參,輸出結果為:

可見, argv為字符串指針數(shù)組,其各元素值為命令行中各字符串(參數(shù)均按字符串處理)的首地址,argc為指針數(shù)組的長度,即為參數(shù)的個數(shù)。


關注我的微信公眾號【嵌入式大雜燴】,回復:C語言,可獲取C語言資料。
關注我的個人博客【我的博客】查看更多筆記

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容