1. 程式人生 > >int main(int argc,char* argv[])淺析 int main(int argc,char* argv[])

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

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

argc : 指輸入引數個數,預設值1,就是執行程式名稱

argv[] : 輸入引數陣列指標

 

舉個栗子:

1. 編寫一個argc.c檔案如下

  1 #include <stdio.h>
  2 
  3 int   main(int   argc,   char*   argv[])
  4 {
  5      int   i;
  6      for(i = 0; i<argc; i++)
  7         printf("argv[%d]= %s \r\n", i, argv[i]);
  
8 return 0; 9 }

2. 再編寫一個Makefile檔案如下:

1 #cc=gcc
2 argc : argc.o
3      cc -o argc argc.o
4 argc.o : argc.c
5      cc -c  argc.c
6  
7  .PHONY:clean
8  clean:
9      rm -rf argc.o argc

3. 編譯程式碼,生成可執行檔案argc

1 [email protected]:~/share/test/argc$ make
2 cc -c  argc.c
3 cc -o argc argc.o
4 [email protected]:~/share/test/argc$ ls 5 argc argc.c argc.o Makefile

4. 執行可執行檔案

1 [email protected]:~/share/test/argc$ ./argc aaaa bbb cc
2 argv[0]= ./argc 
3 argv[1]= aaaa 
4 argv[2]= bbb 
5 argv[3]= cc 
6 [email protected]:~/share/test/argc$ ./argc
7 argv[0]= ./argc 
8 [email protected]
:~/share/test/argc$

5. 從執行結果可以看出,argc預設值是1,就是可執行檔名稱,不過還帶了路徑名”./“ .

NOTE:

gcc是C編譯器;g++是C++編譯器;linux下cc一般是一個符號連線,指向gcc;gcc和g++都是GUN(組織)的編譯器。而CC則一般是makefile裡面的一個名字,即巨集定義,嘿,因為Linux/Unix都是大小寫敏感的系統,這點一定要注意。