//ay2.c -- by tsaiwn@csie.nctu.edu.tw //wrong version -- 有 BUG // test array and it's initialization #include int x[3][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; //不夠會自動補 0 int main( ) { int row, col; for(row=0; row <3; ++row) { for(col=0; col <=4; col++) printf(" %5d", x[row, col]); // 這裡有問題 ! why? // 因為 x[row, col] 會被當作 x[col] //但 x 是2-dimensional, 固 x[col] 被解釋成 &x[col][0] // 若 array 名字單獨出現, 會被解讀成該array最頭元素之address // x[col] 顯然是 array, 最頭元素是 x[col][0]; // 阿它的 address 就是 &x[col][0] 囉 printf("\n"); // new Line 換新列 } printf("Bye bye!\n"); return 0; // 表示正常結束 } /**************************************** /// 正確答案應該如下: 但是但是 ... C:\TESTC>tcc ay.c Turbo C++ Version 3.00 Copyright (c) 1992 Borland International ay.c: Turbo Link Version 5.0 Copyright (c) 1992 Borland International Available memory 4114388 C:\TESTC>ay 1 2 3 4 5 6 7 8 9 10 11 12 13 0 0 Bye bye! C:\TESTC> **************************/