main函数相关
在歷史上,大多數UNIX系統對main函數提供了三個參數,原型如下:
int main(int argc, char *argv[], char *env[] );
其中第三個參數是環境表地址。
ANSI C規定main函數只有兩個參數,而且第三個參數與全局變量environ相比也沒有帶來更多益處,
所以POSIX.1也規定應使用environ而不使 用第三個參數。
通常用getenv和putenv函數來存取特定的環境變量,而不是用environ變量。
所以我們見到的main函數的原型多是下面這種 形式:
int main ( int argc, char* argv[]),參數argc代表了輸入參數的個數,char *argv[]表示傳入的參數的字符串,是一個字符串數組。
例如在linux平臺下編寫一個小程序:
int main(int argc, char* argv[])
{int i;printf("argc:%d\n", argc);for(i=0;i<argc;i++){printf("argv[%d]:%s\n", i, argv[i]);}exit(0);
}用gcc編譯后形成一個a.out的可執行的文件,運行a.out,其結果是:
argc=1,argv[0]=”a.out”
運行的程序的文件名,也占用一個參數位置,也就是說argv數組中的第一個單元指向的字符串總是可執行程序的名字,
以后的單元指向的字符串依次是程序調用時的參數。
這個賦值過程是操作系統完成的,我們只需要拿來用就可以了。
在命令行參數的提交中,系統會自動給指針數組后加上一個NULL,所以
for(i=0;i<argc;i++)這句也可以換成while(*argv!=NULL)int main(int argc)省略其它參數的定義也是可以的,這樣運行時候argc就直接返回參數個數,而不返回其它。
運行命令行參數帶有char* argv[]的時候,如果輸入參數帶有空格,應該用雙引號括起來。
總結
- 上一篇: 约1400元起!三星A23 5G/A14
- 下一篇: 特斯拉车机上线微信小程序!在车上也能刷微