move(n, x, y, z) 將 n 盤從 x 經 y 移至 z。
n=1:直接 x→z。
n>1:
1. move(n-1, x, z, y) // x→y 借 z
2. printf(x→z) // 底盤直達
3. move(n-1, y, x, z) // y→z 借 x
每次遞歸 n 遞減 1,最終歸 1 終止。n=4 產生 15 步輸出,完整列於原文。
main() { int k=5; { int k=8; } printf("%d",k); } 輸出 5。extern 聲明(定義在前者可免聲明)。靜態存儲(全局、static)程序啟動分配、結束釋放,生存期=程序運行期。
動態存儲(auto、register)調用時分配、返回時釋放,生存期=調用期。
四大存儲類別:
auto(預設局部)、register(建議寄存器)、extern(外部)、static(靜態)。
完整聲明:存儲類別 數據類型 變量名; 如 static int a[5]={1,2,3,4,5};。