gpt4 book ai didi

c - 在函数声明中将指针声明为参数的 3 种方法是什么?

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

我发现并理解了这个方法:

void PrintString(char *String_Ptr)
{
//Print String
}

我找不到任何其他方法来将指针声明为函数声明中的参数。

我被引导相信还有其他方法可以从家庭作业问题中做到同样的事情。

最佳答案

除了问题中提到的之外,还有一些可能性。

以下内容与问题中的版本完全相同,尽管欺骗性语法表明 String_Ptr 是一个数组。它不是,它是一个指针:

void PrintString(char String_Ptr[])
{
printf("%s\n", String_Ptr);
}

如果您知道要传递给 PrintString() 的字符数组的长度(例如 10 个字符),您还可以传递指向此类数组的指针:

void PrintArray10(char (*Array_Ptr)[10])
{
printf("%s\n", *Array_Ptr); // assuming the array is '\0'-terminated
}

int main(void)
{
char a[10] = "Blah!";
PrintString(a); // first 2 methods
PrintArray10(&a); // 3rd method
return 0;
}

您还可以使用typedef伪装指针:

typedef char* pchar;

void PrintString(pchar String_Ptr)
{
printf("%s\n", String_Ptr);
}

typedef char (*pchararr10)[10];

void PrintArray10(pchararr10 Array_Ptr)
{
printf("%s\n", *Array_Ptr); // assuming the array is '\0'-terminated
}

关于c - 在函数声明中将指针声明为参数的 3 种方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003461/

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