C中的命令行参数

Fla*_*ash 4 c

我让这个程序执行命令行给出的值10,20,30.

int main(int argc , char **argv)
 { 
  printf("\n Printing the arguments of a program \n");
  printf("\n The total number of arguments in the program is %d",argc);
   while(argc>=0)
    { 
     printf("%s   ",argv[argc]);
     argc--;
     }
     return 0;
  }    
Run Code Online (Sandbox Code Playgroud)

输出是程序中的参数总数是4(null)30 20 10 ./a.out

那个(null)来自哪里?

Jer*_*fin 16

argv[0]是(尽可能)应该是识别正在运行的程序的东西.argv[1]through argv[argc-1]是在命令行中实际输入的参数.argv[argc]必须是空指针(第5.1.2.2.1/2节).


Gre*_*ill 5

argcargv数组中元素的总数; 他们是从编号0argc - 1.您正在打印五个值,只有最后四个有效.