for(i = 0; i < 4; ++i)
{
int x;
}
對於上面代碼,x的生存週期是一次循環還是整個循環呢?
我們通過打印發現x的地址在每次循環中地址不變,所以x的生存週期是在整個for循環,爲了進一步驗證,我們使用gdb追蹤一下
修改代碼如下:
for(i = 0; i < 4; ++i)
{
int x =0;
x++;
}
通過gdb追蹤發現
x的生存範圍僅在一對大括號之內,在for(i = 0; i< 4; ++i)中是不可見的,同時在每次進入左大括號時(未執行int x = 0;之前)我們可以查看到x的值爲1,這
充分證明了x的作用域是在整個循環體之內的