【问题标题】:Are these pointer constructions equivalent?这些指针结构是否等效?
【发布时间】:2011-03-29 21:53:45
【问题描述】:

这些结构是等价的吗?

int *(*p[10])() //array of ten pointers onto int functions

int *(*p())[10]

【问题讨论】:

标签: c++


【解决方案1】:

没有。

这就是永远精彩的cdecl 所说的:

  1. int *(*p[10])():将p声明为指向函数的数组10,该函数返回指向int的指针
  2. int *(*p())[10]:将p声明为函数,返回指向int的指针数组10的指针。

直观地说,它们“不应该”是相同的,因为 C++ 的声明语法很少那么模棱两可(至少这对我来说是直观的)。

可能值得指出的是,cdecl 也是一个命令行工具,它只是更方便地链接到托管它的实例的网页。只是想澄清一下,这是一个(非常)旧的工具,我第一次看到它是在 Kernighan 和 Ritchie 的 "The C Programming Language" 书中提到的,我相信我有第二版。

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 2017-06-11
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2012-07-23
    • 2017-01-19
    • 2019-10-11
    相关资源
    最近更新 更多