C 返回陣列指標

2021-10-02 14:58:43 字數 586 閱讀 5331

陣列不能被拷貝,所以不能作為函式返回值,所以採用函式返回指標或者引用代替

一,宣告乙個返回指標的函式

二,使用尾置返回型別

三,使用decltype

四,示例

//返回陣列的引用,並且該引用包含10個string型別

string (&func())[10];

//func()表示用func函式無需任何實參

//(&func())表示函式的返回結果就是個引用,

//(&func())[10]表示引用的物件是乙個維度為10的陣列

//string (&func())[10];表示陣列的元素是string物件

型別別名宣告

//型別別名宣告

typedef string arr[10];

arr& func();

//使用尾置返回型別

auto func() -> string(&) [10];

//使用decltype關鍵字

string str[10];

decltype(str) & func();

C 之返回陣列指標

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

返回陣列指標

如果我們想定義乙個返回陣列指標的函式,則陣列的維度必須跟在函式的名字之後,然而函式名字之後的是形參列表,所以形參列表應該在陣列的維度之前。返回陣列指標的函式形式如下所示 type function parameter list dimension 下面這個func函式的宣告沒有使用型別別名 int ...

c語言函式的陣列返回和指標返回

函式內的陣列和指標都是屬於函式棧空間。如果把陣列或指標返回給外部指標,會發生什麼?1先看看第一種,返回陣列 2看看返回指標的情況 include stdio.h char get c int main int argc,char const ar 這個陣列了,系統或者任務會主動的修改裡面的資料,導致...