本地變量我發現這個代碼on web作爲一個例子,但我認爲這是不正確的。自動變量的地址返回,這是隻是巧合,它可能有時工作:返回靜態指針從功能
返回一個指針破壞局部變量,成爲無效的內存位置,是不確定的行爲。
我唯一的一點猶豫是關於指針是static
,但我認爲這不會改變,因爲這是變量,應該是static
不是指針:局部變量將被銷燬。你能否確認或否認?
double *& showNumber()
{
double n = 1550.85;
static double *v = &n;
return v;
}
int main(int argc, char *argv[])
{
double sn = *showNumber();
sn = *showNumber();
//...
}
該程序的整個持續時間靜態挖牆角只要你對它們進行初始化所以這應該是沒關係的V,不針對n –