700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > [C语言] 命令行参数

[C语言] 命令行参数

时间:2020-09-30 00:01:34

相关推荐

[C语言] 命令行参数

不带命令行参数

C语言源程序经编译和连接处理,生成可执行程序后,才能运行。例如,test.c是一个简单的C语言源程序:

#include<stdio.h>int main(void){printf("Hello world\n");return 0;}

经过编译和连接后,生成可执行程序test.exe,它可以直接在Windows环境下以命令方式运行。比如,将其放到桌面,在DOS中,输入test即可运行:

带命令行参数

输入命令时,在可执行文件(命令)名后面可以跟一些参数(命令行参数),一般形式为:

命令名 参数1 参数2 … 参数n

命令名和参数之间用空格分隔,也可以没有参数。

在C语言中,主函数main()可以有两个参数,用于接收命令行参数。带参数的main()习惯写法为:

int main(int argc, char* argv[]){// …}

第一个参数argc(argument count)用于接收命令行参数(包含命令)的个数;第二个参数argv(argument vector)接收以字符串常量形式存放的命令行参数(包括命令本身也作为一个参数)。字符指针数组argv[]表示各个命令行参数(包含命令),其中argv[0]指向命令,argv[1]指向第一个命令行参数,argv[2]指向第二个命令行参数,…,argv[argc-1]指向最后一个命令行参数.

应用

编写程序echo,输出所有命令行参数在同一行上。

#include<stdio.h>int main(int argc, char* argv[]){int k;for(k = 1; k < argc; k++)printf("%s ", argv[k]);printf("\n");return 0;}

输入:echo Hello world

输出:Hello world

由于argv是函数main()的形参,尽管定义时一般写成数组形式,但实际上还是指针,在程序中可以直接改变它的值。上面echo.c中的循环也可以写成:

for(k=1,argv++;k<argc;k++)printf("%s ",*(argv++));

注意有坑:Windows自带echo,建议保存C程序源文件时对文件名进行修改,不使用echo,或者在命令行使用echo.exe hello world避免直接调用系统的echo。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。