24 / 07 / 09
#include <stdio.h> /* This is a comment. */ int main(int argc, char *argv[]) { int distance = 100; // this is also a comment printf("You are %d miles away.\n", distance); return 0; }
对于每一行,写出你不理解的符号,并且看看是否能猜出它们的意思。在纸上写下你的猜测,你可以在以后检查它,看看是否正确。
int argc, char *argv[]
在 C 和 C++ 编程中,int argc, char *argv[]
是标准的命令行参数,它们作为 main
函数的参数传递,用于获取从命令行传递给程序的参数。下面是它们的具体作用:
argc
类型:int
含义:参数个数,表示命令行传递给程序的参数的数量。
详情:argc
(argument count)包含传递给程序的参数总数,包括程序名本身。例如,如果命令行输入为 ./program arg1 arg2 arg3
,则 argc
为 4。
argv
类型:char *argv[]
或 char **argv
含义:参数值,指向包含命令行参数的字符串数组。
详情:argv
(argument vector)是一个指向字符指针的数组,每个元素指向一个命令行参数的字符串。argv[0]
通常是程序的名称,argv[1]
到 argv[argc-1]
是命令行传递的其他参数。例如,如果命令行输入为 ./program arg1 arg2 arg3
,则:
argv[0]
是 "./program"
argv[1]
是 "arg1"
argv[2]
是 "arg2"
argv[3]
是 "arg3"
示例
以下是一个示例程序,演示如何使用 argc
和 argv
打印传递给程序的命令行参数:
#include <stdio.h> int main(int argc, char *argv[]) { printf("Number of arguments: %d\n", argc); for (int i = 0; i < argc; i++) { printf("Argument %d: %s\n", i, argv[i]); } return 0; }
运行此程序,如果命令行输入为 ./program arg1 arg2 arg3
,输出将是:
Number of arguments: 4 Argument 0: ./program Argument 1: arg1 Argument 2: arg2 Argument 3: arg3
应用场景
参数解析:通过 argc
和 argv
解析命令行参数,根据输入的参数执行不同的操作。
动态输入:允许程序接受动态输入,使得程序更灵活和通用。
脚本化:在脚本和批处理操作中,使用命令行参数传递输入数据或配置选项。
回头去看之前几个练习的源代码,并且像这样分解代码,来看看你是否了解它们。写下你不了解和不能自己解释的东西。
谢天谢地前四个不算太难。