[cpp] #include "stdio.h" #include <string> int add() { int a ; int b = 2; a = a+b; printf("%d\n", a); return 0; } void cat() { char st1[] = "bbbbbbb"; char tt[50]; strcat(tt, st1); printf("%s\n",tt); } int main() { //循環體內定義在編譯的時候只定義一次,空間是同一個空間 for (int j=0; j<2; j++) { char st1[] = "bbbbbbb"; char tt[50]; strcat(tt, st1); printf("循環內%s\n",tt); } printf("\n"); //地址空間沒有變化,但內容清空了,很神奇!???????????????!! for (int i=0; i<3; i++) { cat(); add(); } printf("\n"); //出了循環體,地址空間被清空。 //對於方法如果不清空,變量是在同一個空間上的。 cat(); cat(); { cat(); } printf("\n"); //不通作用域同名變量空間不通 { char st1[] = "bbbbbbb"; char tt[50]; strcat(tt, st1); printf("小作用域1%s\n",tt); } { char st1[] = "bbbbbbb"; char tt[50]; strcat(tt, st1); printf("小作用域2%s\n",tt); } return 0; } 定義變量一定要注意初始化,注意清空呀@!