命令行参数
在图形界面普及之前都使用命令行界面,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函数有两种情况:
- int main(void) 没有参数
- 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$
许多环境可以使用[""]把多个单词组成一个参数