【问题标题】:Confusion about const syntax关于 const 语法的困惑
【发布时间】:2011-05-18 09:36:55
【问题描述】:

我在读取如下所示的程序中的一行时遇到了一些问题:

char* const *(*next) ();

我认为next 是一个指向函数的指针,该函数返回指向const 的指针指向char 的指针,但我还是有点困惑。如果有人能尽快回答这个问题,那就太好了!

【问题讨论】:

  • 它可以帮助从右到左阅读签名。尤其是像这样的“奇怪”指针。

标签: c function pointers constants


【解决方案1】:

cdecl 可以帮助您理解 C 中更复杂的声明。

【讨论】:

  • 给一个人一根钓鱼竿,他可以阅读最复杂的类型声明。
【解决方案2】:

char* const* (*next) ();

您正在声明一个名为next 的函数指针,它返回一个char* const*(指向char* const 的指针)。你是对的(:

用法:

char* const* ret = next(); 或 char* const* ret = (*next)();

【讨论】:

  • 接受未指定数量的参数;不是“没有参数”
猜你喜欢
  • 2021-01-06
  • 2021-09-23
  • 2013-08-11
  • 2022-01-05
  • 2012-09-14
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多