#include <stdio.h>
int main(void) {
int num = 2;
for (int i = 0; i < 3; ++i) {
printf("外層 num = %d\n", num);
++num;
{
auto int num = 1; // 內層區塊新變數,遮蔽外層 num
printf("內層 num = %d\n", num);
++num; // 僅修改內層變數
}
/* 離開內層區塊,內層 num 銷毀,外層 num 可見 */
}
return 0;
}
外層 num = 2 內層 num = 1 外層 num = 3 內層 num = 1 外層 num = 4 內層 num = 1
auto 為 C 預設儲存類別,明確寫出僅為強調「自動儲存期、區塊作用域」。auto int num 遮蔽外層同名變數,兩者互不干擾。auto 改為型別推導關鍵字,C 語言仍保留原意。