返回陣列指標

2022-09-02 01:27:07 字數 683 閱讀 6547

如果我們想定義乙個返回陣列指標的函式,則陣列的維度必須跟在函式的名字之後,然而函式名字之後的是形參列表,所以形參列表應該在陣列的維度之前。返回陣列指標的函式形式如下所示:

type (*function (parameter_list)) [dimension]

下面這個func函式的宣告沒有使用型別別名:

int (*func (int i))[10];

c++ 11 中可以使用尾置返回型別

auto func(int i) -> int(*)[10];

使用decltype

如果我們知道函式返回的指標是指向哪個陣列,就可以使用delctype關鍵字宣告返回型別,例如,下面的函式返回乙個指標,該指標根據引數i的不同指向兩個已知陣列中的某乙個:

int odd=

int even=

decltype(odd) * arrptr(int

i)

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

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

C 返回陣列指標

陣列不能被拷貝,所以不能作為函式返回值,所以採用函式返回指標或者引用代替 一,宣告乙個返回指標的函式 二,使用尾置返回型別 三,使用decltype 四,示例 返回陣列的引用,並且該引用包含10個string型別 string func 10 func 表示用func函式無需任何實參 func 表示...

C 之返回陣列指標

陣列不能拷貝,所以函式不能返回陣列。但是函式可以返回陣列指標或者引用。定義乙個返回陣列的指標或引用比較麻煩,可以這樣簡化 typedef int arrt 10 arrt 表示含有10個整數的陣列 using arrt int 10 與上面一句等價 arrt func int i 返回乙個指向含有1...

C C 函式返回陣列指標

因為陣列不能被拷貝,所以函式不能返回陣列.不過,函式可以返回陣列的指標或引用.宣告乙個返回陣列指標的函式 type function parameter list dimension int func int i 10 使用尾置返回型別 trailing return type 後面為函式的返回型別...