c 語言
不允許返回乙個完整的陣列作為函式的引數
。但是,您
可以通過指定不帶索引的陣列名來返回乙個指向陣列的指標
。我們將在下一章中講解有關指標的知識,您可以先跳過本章,等了解了 c 指標的概念之後,再來學習本章的內容。
如果您想要從函式返回乙個一維陣列,您必須宣告乙個返回指標的函式,如下:
int*
myfunction()
另外,c 不支援在函式外返回區域性變數的位址,除非定義區域性變數為static變數。
現在,讓我們來看下面的函式,它會生成 10 個隨機數,並使用陣列來返回它們,具體如下:
#include
<
stdio.h
>
#include
<
stdlib.h
>
#include
<
time.h
>
/*要生成和返回隨機數的函式
*/
int*
getrandom()
returnr;
} /*
要呼叫上面定義函式的主函式
*/
intmain()
return0;
} 當上面的**被編譯和執行時,它會產生下列結果:
r[0] = 313959809r[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 傳陣列給乙個函式,陣列型別自動轉換為指標型別,因而傳的實際是位址。如果您想要在函式中傳遞乙個一維陣列作為引數,您必須以下面三種方式來宣告函式形式引數,這三種宣告方式的結果是一樣的,因為每種方式都會告訴編譯器將要接收乙個整型指標。同樣地...