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 “此类变量的声明”;int(*pfds)[2]&引用;他们叫什么_C - Fatal编程技术网

C “此类变量的声明”;int(*pfds)[2]&引用;他们叫什么

C “此类变量的声明”;int(*pfds)[2]&引用;他们叫什么,c,C,我在研究简单的源代码。找到了这条线 int (*pfds)[2]; 它是否意味着指向类似于的函数的指针 void (*fun_ptr)()[2] = &fun; 我认为这是指向函数fun(void)int(*pfds)[2]的指针数组--->pfds是指向由2个元素组成的数组的指针 void(*fun_ptr)([2]--->声明fun_ptr为返回void的2个元素数组的函数指针。但它是无效的。因为,在C中,不允许函数返回数组 void*(*fun_ptr)(--->

我在研究简单的源代码。找到了这条线

 int (*pfds)[2];
它是否意味着指向类似于的函数的指针

     void (*fun_ptr)()[2] = &fun; 
我认为这是指向函数
fun(void)
int(*pfds)[2]的指针数组
--->
pfds
是指向由2个元素组成的数组的指针

void(*fun_ptr)([2]
--->声明
fun_ptr
为返回void的2个元素数组的函数指针。但它是无效的。因为,在C中,不允许函数返回数组

void*(*fun_ptr)(
--->声明
fun_ptr
作为函数返回的指针,指向void的指针。这是有效的。如果要返回void类型的数组,这就是您需要的是指向包含两个元素的数组的指针

括号出现是因为
int*pfds[2]
将是两个指针的数组,如
char*argv[]
是一个char指针数组(即字符串)

函数指针
void(*fun_ptr)(
有第二组括号,用于参数列表:
int(*add)(int x,int y)


它似乎不是有效的
void(*fun_ptr)([2]
void*fun_ptr()

函数不能返回数组