以下内容无法编译:
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 样式数组,而是某种指针数组。有人可以证实吗?
谢谢你和问候。
没错,argv
是指向指针数组的第一个元素的指针,每个指针又(最后一个除外)是指向提供相应命令行参数的字符串中第一个字符的指针。
函数参数不能是数组。