ubuntu下C語言函式傳參
阿新 • • 發佈:2018-11-19
在進行C語言程式設計時,有時候需要使用命令列傳參,下面對其進行一個分析。
int main(int argc,const char * agrgv[])
int argc 命令列引數個數(包含檔名)
const char* argv[] 指標陣列:將命令列引數首地址作為元素,加上const關鍵字的意思是陣列中的內容是不能修改的,很明顯,我們進行傳參的時候,裡面的內容是不需要修改的,這就是const關鍵字的真正含義!
原始碼例子:
#include <stdio.h> int main(int argc, const char *argv[]) { printf("argc = %d\n",argc); printf("argv[0] = %s\n",argv[0]); printf("argv[1] = %s\n",argv[1]); return 0; }
原始碼執行結果:
分析:
執行./a.out的時候,引數的個數為1個,這是a.out被放入到了argv[0]中;
執行./a.out ls的時候,引數的個數為1個,這是a.out被放入到了argv[0]中;
ls被放入到了argv[1]中。
以下方式實現引數無限傳遞,並且無限顯示:
#include <stdio.h> int main(int argc, const char *argv[]) { int i = 0; printf("argc = %d\n",argc); for (i = 0; i < argc; i++ ) { printf("argv[%d] = %s\n",i,argv[i]); } return 0; }
這樣就可以完全理解命令列傳參的全部了!