最近,我計算器上讀出的線程返回一個局部變量必須避免其是否指針類型或正常變量。我看到在我的C書爲例,它返回一個局部變量,所以我想嘗試一遍用C返回一個局部變量混淆
#include <stdio.h>
int func(int a, int b)
{
int d, e, f;
d = a;
e = b;
f = d+e;
return f;
}
int main(void)
{
int c = func(1, 2);
printf("hello\n");//I put this printf in between
printf("c = %d\n", c);//here c should be overwritten
return 0;
}
在該線程有人說,如果我把函數調用和訪問該變量之間的任何東西,我會錯過價值。
我能夠訪問本地變量無論我做什麼,但我記得我根據該線程,並顯示所講述相同的行爲寫了一個例子。
我錯過了什麼?
這與本書所說的完全相同的代碼嗎?否則,這是正常行爲,因爲您已經使用'c'將函數的返回值保存在main中。您可以在賦值之後始終讀取其值。 –
返回一個局部變量的*值*很好......返回一個*指針*不是一個局部變量(除非它是靜態的,你知道後果)。 – Dmitri
相關問題:http://stackoverflow.com/questions/4824342/returning-a-local-variable-from-function-in-c – rsp