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()
。函数不能返回数组