c++ - 如何找出复杂的声明符,例如 Essential C++ Ch2.8

标签 c++

示例代码如下:

  const vector<int>* (*seq_array[])(int) = {
   fibon_seq, lucas_seq, pell_seq,
   triang_seq, square_seq, pent_seq
   };

我一步一步弄清楚声明:

  1. *seq_array[]是一个指针数组

  2. (*seq_array[])(int)int 的函数参数

3.所以const vector<int>* (*seq_array[])(int)是一个返回 const vector<int> 的指针函数输入 int参数。

如果我的理解是正确的,那么我找不到任何return这个函数中的语句。 如果没有,任何人都可以指出我的错误并就复杂的声明符提供一些指导。谢谢。

最佳答案

seq_array是 i) 一个数组 ii) 函数指针 iii) 采用int并返回 const vector<int>* 。了解正在发生的事情的最简单方法之一是遵循所谓的 spiral rule。 .恕我直言,它是目前最好的助记法之一,即使是从 1994 年开始的。

关于c++ - 如何找出复杂的声明符,例如 Essential C++ Ch2.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30430796/

相关文章:

c++ - C 和 C++ 调用函数时 EAX 寄存器初始化的差异

C++ - 有没有办法使用不变语法获取当前类类型?

c++ - gstreamer audiomixer 命令到代码转换

c++ - 使用 C++ sqlite 将特定输入插入数据库

c++ - 枚举变量默认值?

c++ - 是否可以通过编程方式创建函数静态对象?

c++ - 使用信号/槽来避免循环依赖?

c++ - 将 C++ 套接字代码移植到 Windows

C++随机数每次都相同的序列

c++ - 正则表达式,找不到匹配项