include iostream include cstdlib using namespace std int
指標與一維陣列範例 #include <iostream> #include <cstdlib> using namespace std; int main(void) { int a[3]={5, 7, 9}; int i, sum=0; for(i=0; i<3; i++) sum += *(a+i); /* 同sum += a[i] */ cout << "sum=" << sum << endl; system("PAUSE"); return 0; }
二維陣列 vs. 雙重指標 int num[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; num[3][3] [0][0] [0][1] [0][2] [1][0] [1][1] [1][2] [2][0] [2][1] [2][2] 1 2 3 4 5 6 7 8 9 1000 1004 1008 1012 1016 1020 1024 1028 1032
二維陣列 vs. 雙重指標 指標常數 num 指標常數陣列 num[0][0] 1 1000 num[0] 1000 *(num+0 ) num[1] 1012 *(num+1 ) num[2] 1024 *(num+2 ) 2 3 1000 1004 1008 4 5 6 1012 1016 1020 7 8 9 1024 1028 1032
動態記憶體配置運算子 【new 與 delete】 利用 new 取得動態空間 int *ptr; ptr = new int; *ptr = 10; 可以合併寫成 int *ptr = new int(10); 利用 delete 釋放空間 delete ptr; ptr = NULL;
二維動態配置記憶體 int **ptr = new int*[m]; int ** ptr int * ptr[0] ptr[1] ptr[2]. . ptr[m-1] ptr[1][0 ] ptr[1][1] ptr[1][2] . . . ptr[1][n-1] ptr[0][0 ] ptr[0][1] ptr[0][2] . . . ptr[0][n-1] ptr[2][0 ] ptr[2][1] ptr[2][2] . . . ptr[2][n-1] …… ptr [m-1][0] ptr [m-1][1] for(i=0; i<m; i++) ptr[i] = new int[n]; ptr [m-1][2] . . . ptr [m-1][n-1]
- Slides: 22