C ++ int main(int argc,char * argv []) - argv是一个c样式数组吗?

时间:2013-12-22 11:21:45

标签: c++ arrays main

以下内容无法编译:

int main (int argc, char *argv[]) {
    char arr[2][2];
    char **ptr = arr;
    return 0;
}

但以下情况确实如此:

int main (int argc, char *argv[]) {
    char **ptr = argv;
    return 0;
}

因此我得出结论,argv不是一个c样式数组,它存储为单个内存块,而是某种指针数组。有人可以证实吗?

谢谢你和问候。

1 个答案:

答案 0 :(得分:5)

这是正确的,argv是指向指针数组的第一个元素的指针,每个指针轮流(除了最后一个)是一个指向字符串中第一个字符的指针,给出了各自的命令行参数。

函数参数不能是数组。