Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 理解一些疯狂的C/C++;声明_C++_C - Fatal编程技术网

C++ 理解一些疯狂的C/C++;声明

C++ 理解一些疯狂的C/C++;声明,c++,c,C++,C,可能重复: 考虑: char (*(*x())[5])() 我如何剖析这个表达式 我认为这是一个返回大小为5的数组的函数,其成员是指向函数的指针,该函数不接收任何输入并返回字符 我说得对吗?这些天我在StackOverflow上看到了很多奇怪的声明 当我懒惰时,我会使用: “将x声明为返回char函数指针数组5的函数返回指针” 如果不是这样,就有问题了搜索“左右规则” 在您的情况下,它应该是: x : x is a x()

可能重复:

考虑:

char (*(*x())[5])()
我如何剖析这个表达式

我认为这是一个返回大小为5的数组的函数,其成员是指向函数的指针,该函数不接收任何输入并返回字符


我说得对吗?

这些天我在StackOverflow上看到了很多奇怪的声明

当我懒惰时,我会使用:


“将x声明为返回char函数指针数组5的函数返回指针”

如果不是这样,就有问题了搜索“左右规则”

在您的情况下,它应该是:

         x          : x is a
         x()        : function
        *x()        : returning pointer to
       (*x())[5]    : a 5-element array of 
      *(*x())[5]    : pointer to
     (*(*x())[5])() : function
char (*(*x())[5])() : returning char

检查非平凡声明。将x声明为函数返回指向数组5的指针或指向函数返回字符的指针-否这是一个函数,它返回指向数组的指针,数组由五个指针组成,指向接受(C:未指定参数| C++:无参数)并返回字符的函数。函数不允许在C或C++中返回数组。搜索重复…类似:@hmjd:其实我知道cdecl.org,但我想知道解析这种表达式的原理。不是一个5元素数组,而是一个包含5个以上元素的数组。它至少有6个字符。@user1717828我很好奇你这是什么意思。声明是
[5]
,它的确切意思是
包含5个元素的数组
。当然,你可以访问第5个元素以外的内容,但这不是声明告诉你的。好吧,现在我只想保留我的原始评论,这样任何其他容易陷入相同陷阱的人都不会重复我的错误。我以为它正在访问数组的[5](第六个)成员#努比木桩