“char *argv[]”是什么意思?

问题描述 投票:0回答:1

我有这个程序

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;

    for (i=0; i < argc;i++) {
        printf("argv[%d] = %s\n", i, argv[i]);
    }


}

我想知道这个论点

char *argv[]
。我的第一个想法是这是一个字符指针数组?但是如果我们写:
(char *argv)[]
,它应该编译?但后来我收到错误消息

testargs.c:3:20: error: expected declaration specifiers or '...' before '(' token
    3 | int main(int argc, (char *argv)[]) {

但是,如果我有

char *(argv[])
,它将正确编译并运行。但就指针和数组而言,这实际上是什么?是指向数组的字符指针,还是什么?

arrays c string pointers char
1个回答
0
投票

这表示指向

char
的指针数组,换句话说,就是字符串。您认识到这一点的方式是,数组语法
[]
被降级为指针,因此这与
**char
相同,指向
char
s 的指针。

© www.soinside.com 2019 - 2024. All rights reserved.