C C 函式返回陣列指標

2021-10-03 12:41:28 字數 813 閱讀 4404

因為陣列不能被拷貝, 所以函式不能返回陣列. 不過, 函式可以返回陣列的指標或引用.

宣告乙個返回陣列指標的函式

type (*function(parameter_list))[dimension]

int(*

func

(int i))[

10];

使用尾置返回型別 (trailing return type)
// '->'後面為函式的返回型別.

auto

func

(int i)

->

int(*)

[10];

使用decltype
int odd=

;int even=

;decltype

(odd)

*arrptr

(int i)

arrptr使用關鍵字decltype表示它的返回型別是個指標, 並且該指標所指的物件與odd的型別一致. 因為odd是陣列, 所以arrptr返回乙個指向含有 5 個整數的陣列的指標.

decltype並不負責把陣列型別轉換成對應的指標, 所以decltype的結果是個陣列, 要想表示arrptr返回指標還必須在函式宣告時加乙個*符號.

函式指標陣列與返回陣列指標的函式

int a int int p 10 第一種情況為陣列裡面是函式指標的情況,因為 int int 是乙個強制轉換方式,將裡面的a這個陣列轉換成了乙個函式指標的陣列,並且該函式是乙個帶乙個整型變數,並且返回乙個整型的函式.第二種情況為函式返回的為指向乙個一維陣列的指標的情況.因為 int 10 將其強...

C C 函式返回陣列的方法

c c 中想要乙個函式返回陣列,此類問題,應用場景往往為了解決函式間相互通訊,比如某個函式內處理的完的結果資料需要交接給另乙個函式的情況,方法大概有三種 例如在函式func中對a陣列進行賦值,之後可以再對該陣列進行其他操作 1.利用全域性變數直接對資料進行操作。int a 2 void func v...

關於函式指標陣列與返回陣列指標的函式

關於函式指標陣列與返回陣列指標的函式 2007 08 15 08 34 int a int int p 10 第一種情況為陣列裡面是函式指標的情況,因為 int int 是乙個強制轉換方式,將裡面的a這個陣列轉換成了乙個函式指標的陣列,並且該函式是乙個帶乙個整型變數,並且返回乙個整型的函式.第二種情...