【问题标题】:Tricky Notations in C [duplicate]C中的棘手符号
【发布时间】:2013-02-08 03:31:16
【问题描述】:

这些符号指的是什么?我在声明什么?我很难确定要声明的内容

1 - double (*b)[n];  
2 - double (*c[n])();  
3 - double (*d())[n];  

我什至无法理解这个

double (*foo(double (*) (double, double[]),double)) (double, ...);

总的来说,如果有任何逻辑或步骤,我几乎可以使用所有(或最好是 al) 案例,很高兴知道。

【问题讨论】:

  • 看看spiral rule
  • 在很多情况下,cdecl.org 上都有漂亮的小工具。
  • 谢谢,我确实搜索了很多,但不知道找到有关此类主题的材料的关键字
  • 嘿,非常感谢螺旋规则网站,我只是想出了所有的例子。 cdecl 小工具也很好地节省了一些时间,我正在保存它。令人印象深刻的是这里的社区如何快速而熟练
  • 没错,键入别名和某种identity 模板会使这些更具可读性。

标签: c++ c


【解决方案1】:
double (*b)[n];  

这是一个名为b 的指针,它指向一个长度为ndoubles 数组。

double (*c[n])();  

这是一个名为 c 的数组,其中 n 指向接受未指定参数(在 C 中)或没有参数(在 C++ 中)并返回 doubles 的函数。

double (*d())[n];  

这是一个名为d 的函数,它返回一个指向ndoubles 数组的指针。

希望这会有所帮助!

【讨论】:

  • 我只是好奇你打算在哪里使用最后一个?
  • @chris- 哦,哎呀- 我误读了自己的答案,并认为它返回了一个双精度数组。没关系...
  • @templatetypedef,啊,这就是原因。
猜你喜欢
  • 2023-03-08
  • 2013-05-13
  • 1970-01-01
  • 2014-12-20
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多