在C和C++编程中,main
函数通常是程序的入口点,定义程序的启动方式。函数签名int main(int argc, const char **argv, const char **envp)
包括三个参数:argc
、argv
和envp
。这些参数分别用于接收命令行参数和环境变量。
1. int argc
argc
代表“argument count”,表示传递给程序的命令行参数的数量。这个整数值包括程序本身的名称。例如,如果你在命令行中执行./myprogram arg1 arg2
,那么argc
将等于3。
2. const char **argv
argv
代表“argument vector”,是一个指向字符串数组的指针。这个数组包含传递给程序的命令行参数。数组中的每个元素都是一个以空字符结尾的C字符串(const char *
)。第一个元素(argv[0]
)通常是程序的名称,后续元素(argv[1]
,argv[2]
等)是实际的命令行参数。
例如,对于命令行输入./myprogram arg1 arg2
,argv
将是:
argv[0] = "./myprogram"
argv[1] = "arg1"
argv[2] = "arg2"
argv[3] = NULL // 数组以NULL指针结束
3. const char **envp
envp
代表“environment pointer”,是一个指向环境变量字符串数组的指针。每个环境变量字符串的格式为KEY=VALUE
。该数组也以NULL指针结尾。
例如,一个典型的envp
数组可能包含:
envp[0] = "PATH=/usr/local/bin:/usr/bin:/bin"
envp[1] = "USER=johndoe"
envp[2] = "HOME=/home/johndoe"
envp[3] = NULL // 数组以NULL指针结束
代码示例
#include <stdio.h>
int main(int argc, const char **argv, const char **envp) {
// 打印命令行参数
printf("Command-line arguments:\n");
for (int i = 0; i < argc; ++i) {
printf("argv[%d]: %s\n", i, argv[i]);
}
// 打印环境变量
printf("\nEnvironment variables:\n");
for (const char **env = envp; *env != NULL; ++env) {
printf("%s\n", *env);
}
return 0;
}
标签:const,函数,int,envp,argv,char,C++,mai,argc
From: https://www.cnblogs.com/GaGaWord/p/18227476