gpt4 book ai didi

c - 如何拥有一个返回整数指针的函数数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:35 25 4
gpt4 key购买 nike

当我尝试编译以下行时

int* x[](), (*y)();

我收到错误消息“x 声明为 int() 类型的函数数组”

最佳答案

您不能真正声明一个函数数组,但您可以有一个函数指针数组,这可能会给您带来相同的效果,因为您可以在不显式解除引用的情况下调用它们。

以下将声明一个返回 int*5 函数指针数组。

int* (*x[5])();

网站cdecl会让你玩各种指针声明,看看它们在英语中的含义。

这是阅读 C 声明的黄金法则,从这个old article 中窃取.

Start at the variable name (or innermost construct if no identifier is present. Look right without jumping over a right parenthesis; say what you see. Look left again without jumping over a parenthesis; say what you see. Jump out a level of parentheses if any. Look right; say what you see. Look left; say what you see. Continue in this manner until you say the variable type or return type.

当应用于上述声明时,我们说:

  • x 是一个包含 5 个指针的数组,这些指针指向返回 int 指针的函数。

正如 SteveCox 在下面正确评论的那样,我们注意到,如果我们在遵循上述规则时在左侧遇到类型限定符,它将描述左侧而不是右侧的类型。例如,以下声明声明了一个包含 5 个指针的数组,这些指针指向函数返回const pointer to int,而不是pointer to const int

int* const (*x[5])();

关于c - 如何拥有一个返回整数指针的函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255608/

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