[英]What does int (abc)(int,int) mean?
我正在尝试一些随机声明的数组指针和函数指针。 我被震惊了。
#include<bits/stdc++.h>
int add(int a,int b){
return 1729; }
int main(){
int (abc)(int,int);
abc = add;
return 0;
}
发出的错误是:
cannot convert 'int(int, int)' to 'int(int, int)' in assignment
但由于abc
和add
都属于同一类型,为什么要转换? 或者是否可以为新变量分配函数? 如果是这样,怎么办?
int (abc)(int,int);
它不是函数指针。 在这种情况下,额外的括号并不重要,它等同于
int abc(int,int);
这是一个函数声明 ,C ++允许你几乎放在任何地方(比如另一个函数的主体)。 您的代码无法编译,因为您尝试将一个函数名称分配给另一个函数名称。
要获取指针,您需要指针语法
int (*abc)(int,int);
这一次,括号是必需的,否则你得到一个带有int*
返回类型的函数声明! 现在,任务将很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.