命令行参数

在图形界面普及之前都使用命令行界面,C程序可以读取并使用命令行参数中的附加项【以下使用Ubuntu】

#include <stdio.h>
int main(int argc,char** argv) //argv是指向指针的指针,它所指向的指针指向char
{
	printf("The command line has %d arguments:\n",argc-1);
	for(int i=1;i<argc;i++)
	{
		printf("%d:%s\n",i,argv[i]);
	}
	printf("\n");
	return 0;
}

main函数有两种情况:

  1. int main(void) 没有参数
  2. int main(参数1,参数2) 第1个参数是命令行中的字符串数量【过去这个int参数被称为argc(参数计数)】 第2个参数:程序把命令行字符串存储在内存中,并把每个字符串的地址存储在指针数组中,而数组的地址被存储在参数2中;按照惯例这个参数被称为argv【参数值】
makeru@makeru-virtual-machine:~/Desktop$ ./a.out Hello World

对于大部分系统而言:

命令行参数_命令行参数

返回结果:

makeru@makeru-virtual-machine:~$ cd Desktop/  						//切换到文件保存位置
makeru@makeru-virtual-machine:~/Desktop$ gcc main.c					//gcc编译main.c文件(默认编译文件为a.out)
makeru@makeru-virtual-machine:~/Desktop$ ./a.out Hello World		//运行编译文件添加命令行参数
The command line has 2 arguments:
1:Hello
2:World

makeru@makeru-virtual-machine:~/Desktop$

许多环境可以使用[""]把多个单词组成一个参数

命令行参数_Desktop_02