因為陣列不能被拷貝, 所以函式不能返回陣列. 不過, 函式可以返回陣列的指標或引用.
宣告乙個返回陣列指標的函式
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這個陣列轉換成了乙個函式指標的陣列,並且該函式是乙個帶乙個整型變數,並且返回乙個整型的函式.第二種情...