【问题标题】:Understanding c function pointers理解 c 函数指针
【发布时间】:2017-03-18 09:27:40
【问题描述】:

声明:

“N个函数指针数组,返回函数指针,返回整数指针”

谁能帮我理解上面语句的函数原型?

给出答案-int *(*(*a[N])()) ();

请谁能解释一下我们是如何得出上述答案的?

【问题讨论】:

  • 我已经编码了 25 年而不知道这一点?
  • 你不需要这个。即使你认为你知道,也没有人会理解你的代码。 :-) 在 C++ 中,这可能会通过使用虚函数和继承来解决(从而隐藏所有指针)
  • @BoPersson 如果只有我的教授会理解现实世界软件的工作原理:/
  • @BoPersson 在 C 或 C++ 中,明智地使用 typedef 可以大大提高可读性。 (对于现代 C++,using 甚至比 typedef 更好)

标签: c++ c pointers function-pointers


【解决方案1】:
*a[N]

是N个指针的数组,称之为x

*(x)()

返回函数指针,调用它

int *(y) ()

是函数指针返回整数

【讨论】:

    【解决方案2】:
    int *(*(*a[500])()) ();
    

    翻译为:

    将a声明为指向函数返回指针的指针数组500 函数返回指向 int 的指针


    注意:下次使用本站了解复杂的指针语句http://cdecl.org/

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多