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

Posted ricks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 
", 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都是大小写敏感的系统,这点一定要注意。

 

以上是关于int main(int argc,char* argv[])浅析的主要内容,如果未能解决你的问题,请参考以下文章

int main(int argc,char *argv[])参数的应用

int main(int argc,char *argv[])与int main(int argc,char **argv)区别?

main (int argc,char *argv[]) 或main (int argc,char **argv)区别

int main(int argc,char *argv[]) 解释

int main(int argc, char **argv)的一些解读

int main(int argc,char* argv[])详解