int(abc)(int,int)是什么意思?

ir

我正在尝试数组指针和函数指针的一些随机声明。我被打中了。

#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

但随着这两个abcadd是同一类型的,它为什么要转变?还是可以将函数分配给新变量?如果是这样,该怎么做?

讲故事的人-Unslander Monica
int (abc)(int,int);

它不是函数指针。在这种情况下,多余的括号无关紧要,它等效于

int abc(int,int);

这是一个函数声明,C ++允许您将其放置在几乎任何地方(例如另一个函数的主体)。您尝试将一个功能名称分配给另一个功能名称,因此代码无法编译。

要获取指针,您需要指针语法

int (*abc)(int,int);

其中,此时,括号必需的,否则你就会得到一个函数声明与int*返回类型!现在,任务将格式正确。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章