c 函式返回陣列

2021-08-18 03:15:20 字數 1226 閱讀 7843

c 語言

不允許返回乙個完整的陣列作為函式的引數

。但是,您

可以通過指定不帶索引的陣列名來返回乙個指向陣列的指標

。我們將在下一章中講解有關指標的知識,您可以先跳過本章,等了解了 c 指標的概念之後,再來學習本章的內容。

如果您想要從函式返回乙個一維陣列,您必須宣告乙個返回指標的函式,如下:

int*

myfunction()

另外,c 不支援在函式外返回區域性變數的位址,除非定義區域性變數為static變數。

現在,讓我們來看下面的函式,它會生成 10 個隨機數,並使用陣列來返回它們,具體如下:

#include

<

stdio.h

>

#include

<

stdlib.h

>

#include

<

time.h

>

/*要生成和返回隨機數的函式

*/

int*

getrandom()

returnr;

} /*

要呼叫上面定義函式的主函式

*/

intmain()

return0;

} 當上面的**被編譯和執行時,它會產生下列結果:

r[0] = 313959809

r[1] = 1759055877

r[2] = 1113101911

r[3] = 2133832223

r[4] = 2073354073

r[5] = 167288147

r[6] = 1827471542

r[7] = 834791014

r[8] = 1901409888

r[9] = 1990469526

*(p + 0) : 313959809

*(p + 1) : 1759055877

*(p + 2) : 1113101911

*(p + 3) : 2133832223

*(p + 4) : 2073354073

*(p + 5) : 167288147

*(p + 6) : 1827471542

*(p + 7) : 834791014

*(p + 8) : 1901409888

*(p + 9) : 1990469526

C 函式返回陣列

int getnewarray 或者採用static定義指標變數 在陣列p count 前面加入了static關鍵字,它就使得p count 存放在記憶體中的靜態儲存區中,所占用的儲存單元不釋放直到整個程式執行結束 for int i 0 i count i printf n for int i 0...

函式返回陣列

函式是不能返回陣列的,因此很直接的就想到的是返回指標,指標的宣告位置也要注意,防止在子函式中記憶體釋放掉了,因此用new進行動態分配記憶體,最後注意記憶體的釋放 陣列的釋放與動態分配的變數的釋放方式還有所不同 錯誤的 如下 include using namespace std float mult...

C 函式傳遞和返回陣列

c 中您可以通過指定不帶索引的陣列名來傳遞乙個指向陣列的指標。c 傳陣列給乙個函式,陣列型別自動轉換為指標型別,因而傳的實際是位址。如果您想要在函式中傳遞乙個一維陣列作為引數,您必須以下面三種方式來宣告函式形式引數,這三種宣告方式的結果是一樣的,因為每種方式都會告訴編譯器將要接收乙個整型指標。同樣地...