目錄2 可返回的區域性變數
【示例】:
int * get()
// 或
char *getmemory(void)
【示例】:
int sum(int a, int b)
【常量】
char *getmemory(void)
【示例】:
const char *getmemory(void)
或者int* returnvalue()
; return value;
}
【示例】:
int *sum(int a, int b)
【示例】:
int func()
int i = func();
//有乙個臨時物件來儲存func()函式的返回值1,之後將臨時物件的值賦給i。
//編譯器將所有的臨時物件自動成為const。所以,對於返回值為值型別的函式,其返回值func()為右值。
當函式的返回值是引用型別時,其返回值即為返回的變數,不需要臨時物件儲存其返回值。所以,對於返回值為引用型別的函式,其返回值為左值。
【示例】:
int &sum(int a, int b)
C 函式返回區域性變數
原因 返回值是拷貝值,區域性變數的作用域為函式內部,函式執行結束,棧上的區域性變數會銷毀,記憶體釋放。可返回的區域性變數 1.返回區域性變數本身 int sum int a,int b 2.常量 char returnvalue warning deprecatedconversion from s...
函式返回區域性變數
一般的來說,函式是可以返回區域性變數的。區域性變數的作用域只在函式內部,在函式返回後,區域性變數的記憶體已經釋放了。因此,如果函式返回的是區域性變數的值,不涉及位址,程式不會出錯。但是如果返回的是區域性變數的位址 指標 的話,程式執行後會出錯。因為函式只是把指標複製後返回了,但是指標指向的內容已經被...
函式返回區域性變數
函式返回區域性變數 一般的來說,函式是可以返回區域性變數的。區域性變數的作用域 只在函式內部,在函式返回後,區域性變數的記憶體已經釋放了。因此,如果函式返回的是區域性變數的值,不涉及位址,程式不會出錯。但是如果返回的是區域性變數的位址 指標 的話,程式執行後會出錯。因為 函式只是把指標複製後返回了,...