我有一些参数可以让程序正常工作。该参数应该是 MAX_NUM, x, y。
当捕获 char 输入列表的参数时,我当前使用参数 1 而不是 0 获取 MAX_NUM。
例如:
int main (int argc, char *argv[]) {
int MAX_NUM = atoi(argv[0]);
int x = atoi(argv[1]);
int t = atoi(argv[2]);
printf("MAX_NUM %d\n", atoi(argv[0]));
....
打印argv[1],当打印第一个参数为0时,我正确地得到了MAX_NUM。
为什么 C 将 char 输入列表数组初始化为 1 而不是 0 或程序名称?
最佳答案
简单来说,argv[0]
的值就是要执行的程序的名称。 C有点为此目的保留了argv[0]
索引。要深入了解 C 和操作系统如何开始相互协作的一些细节 - 请查看 Stack Overflow 中的这篇文章。 。
关于c - 为什么argv的第一个参数是1而不是0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929025/