簡體   English   中英

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

[英]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

但由於abcadd都屬於同一類型,為什么要轉換? 或者是否可以為新變量分配函數? 如果是這樣,怎么辦?

int (abc)(int,int);

它不是函數指針。 在這種情況下,額外的括號並不重要,它等同於

int abc(int,int);

這是一個函數聲明 ,C ++允許你幾乎放在任何地方(比如另一個函數的主體)。 您的代碼無法編譯,因為您嘗試將一個函數名稱分配給另一個函數名稱。

要獲取指針,您需要指針語法

int (*abc)(int,int);

這一次,括號必需的,否則你得到一個帶有int*返回類型的函數聲明! 現在,任務將很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM