在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)用,所以形參argc與argv的實際值就不能從其他函數(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語言資料。
關注我的個人博客【我的博客】查看更多筆記
