欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C Primer Plus ---- Chapter 11 ----Character Strings and String Functions ---- 5. 命令行参数

程序员文章站 2024-03-01 16:30:40
...

C Primer Plus ---- Chapter 11 ----Character Strings and String Functions ---- 5. 命令行参数


程序执行时,可以从命令行传值给 c 程序,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。
 
命令行参数是使用 main() 函数参数来处理的。

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

第一个参数 argc 为 argument count,指在命令行中的字符串的数目。系统通过空白字符来分隔字符串,数目也包括输入的命令名字,因此实际用到输入的参数是 argc-1。
 
程序将命令行输入的字符串存储在内存中,用一个数组来存放字符串的地址,这个指针数组就是第二个参数 argv,即 argument value。

/* 11.31 repeat.c -- main() with arguments */
#include <stdio.h>
int main(int argc, char *argv[])
{
int count;
printf("The command line has %d arguments:\n", argc - 1);
for (count = 1; count < argc; count++)
printf("%d: %s\n", count, argv[count]);
printf("\n");
return 0;
}

命令行输入以下参数:

$ repeat Resistance is futile

其中第一个 repeat 是程序名字。

argv[0] points to repeat (for most systems)
argv[1] points to Resistance
argv[2] points to is
argv[3] points to futile

结果:

The command line has 3 arguments:
1: Resistance
2: is
3: futile