C 函式返回區域性變數

2022-07-31 02:54:13 字數 767 閱讀 5677

目錄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...

函式返回區域性變數

一般的來說,函式是可以返回區域性變數的。區域性變數的作用域只在函式內部,在函式返回後,區域性變數的記憶體已經釋放了。因此,如果函式返回的是區域性變數的值,不涉及位址,程式不會出錯。但是如果返回的是區域性變數的位址 指標 的話,程式執行後會出錯。因為函式只是把指標複製後返回了,但是指標指向的內容已經被...

函式返回區域性變數

函式返回區域性變數 一般的來說,函式是可以返回區域性變數的。區域性變數的作用域 只在函式內部,在函式返回後,區域性變數的記憶體已經釋放了。因此,如果函式返回的是區域性變數的值,不涉及位址,程式不會出錯。但是如果返回的是區域性變數的位址 指標 的話,程式執行後會出錯。因為 函式只是把指標複製後返回了,...