gpt4 book ai didi

c++ - 为什么我不能用 foo(char* args[]) 做 foo({"asd","asd1"})?

转载 作者:可可西里 更新时间:2023-11-01 16:38:43 25 4
gpt4 key购买 nike

我正在阅读 C++ Primer,在第 6.2 节中它说:

"Parameter initialization works the same way as variable initialization."

然而当我这样做时:

void foo(char* args[]) {return;}

int main() {

char* args[]={"asd","dsa"}; // ok.

foo({"asd","dsa"}); // error.

}

这是为什么?

最佳答案

作为@T.C.在评论中指出,函数参数中的 args 被转换为 char** 因为函数不能将数组作为参数。既然你做不到

char **asd={"asd","dsa"}; 

代码是非法的。我的困惑来自于

char* args[]={"asd","dsa"};
char **asd=args;

是合法的。

关于c++ - 为什么我不能用 foo(char* args[]) 做 foo({"asd","asd1"})?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31642993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com