char **argv 和 char *argv[]的区别
时间: 2024-01-17 21:18:46 浏览: 78
C++程序中main(int argc, char *argv[])函数的参数意义
char **argv 和 char *argv[] 都是用来传递命令行参数的方式,但它们在语法上稍有不同。
char **argv 是一个指向指针的指针,它是一个“pointer to pointer”类型。在C语言中,它通常用于表示一个字符串数组,每个字符串都是命令行参数。
char *argv[] 是一个数组,其中的每个元素都是一个指向字符的指针。它也可以用来表示一个字符串数组,每个字符串都是命令行参数。
这两种方式在使用上没有本质的区别,只是在语法上稍有不同。在实际使用中,它们可以互换使用。
下面是一个示例程序,演示了如何使用 char **argv 和 char *argv[] 来打印命令行参数:
```c
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
while (*argv != NULL) {
printf("argv[%d] = %s\n", i++, *argv++);
}
return 0;
}
```
这个程序会依次打印出命令行参数的索引和对应的值。
阅读全文