gpt4 book ai didi

c++ - 黑白 char* str[]、char *str 和 char str[] 的区别

转载 作者:行者123 更新时间:2023-11-30 21:25:11 27 4
gpt4 key购买 nike

黑白有什么区别:

function(char* str )
function(char* str[] )
function(char str[] )

它们是如何被调用的(通过什么类型的string/char[])?

最佳答案

function(char* str )

函数接受一个指向 char 的指针,你可以像下面这样调用它:

char arr[10];
function(arr); // here arr is actually a char[] type,but it decays to char*

在函数内部你不知道arr长度

,function(char* str[] )

这是一个指向 char 的指针数组,您可以像这样使用它:

char arr1[] = "foo";
char arr2[] = "fai";
char arr3[] = "foo";
char* sarr[] { arr1, arr2, arr3 };
function(sarr); // here also no length of sarr is known inside function, you should pass is as second argument

and function(char str[] )

这是一个以 char[] 类型作为 str 参数的函数,你可以像这样使用它:

char aa[12] = { "asd" };
function(aa);

我没有看到 function(char* str ) 和 function(char str[] ) 之间有任何巨大差异。编译器甚至不允许您使用此类参数重载函数:

void function (char str[]); // compiler sees it as char* str
void function (char* str);

产生错误。

function(char* str[] ) 另一方面完全不同,因为你有 char 指针数组而不是字符数组

关于c++ - 黑白 char* str[]、char *str 和 char str[] 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32372951/

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