陣列與指標
-
Upload
pinglun-liao -
Category
Education
-
view
69 -
download
3
Transcript of 陣列與指標
指標與陣列
變數與記憶體位址
● 宣告一個變數 int x後,記憶體的配置可能如Variable name Address Value
x 0xAAAA 100
變數與記憶體位址
● 宣告一個變數 int x後,記憶體的配置可能如
● 取此變數記憶體位址和數值
Variable name Address Value
x 0xAAAA 100
位址 數值
&x x
0xAAA 10
指標與記憶體位址
● 宣告一個指標 int* ptr後,記憶體的配置可能如Variable name Address Pointer to
*ptr 0xBBBB ???
指標與記憶體位址
● 宣告一個指標 int* ptr後,記憶體的配置可能如
● 取此指標記憶體位址和數值
Variable name Address Pointer to
*ptr 0xBBBB ???
指標位址 指向的位址
&ptr ptr
0xBBBB ???
指標與記憶體位址
● 指定到某變數 ptr = &x後,記憶體的配置可能如Variable name Address Value
*ptr 0xBBBB 0xAAAA
指標與記憶體位址
● 指定到某變數 ptr = &x後,記憶體的配置可能如
● 取此指標記憶體位址和數值
Variable name Address Value
*ptr 0xBBBB 0xAAAA
指標位址 指向的位址 數值
&ptr ptr *ptr
0xBBBB 0xAAAA 100
指標的運算運算 指向的位址
ptr 0xAAAA
指標的運算運算 指向的位址
ptr 0xAAAA
ptr+1 0xAAAE
指標的運算運算 指向的位址
ptr 0xAAAA
ptr+1 0xAAAE
ptr+2 0xAAB3
指標的運算運算 指向的位址
ptr 0xAAAA
ptr+1 0xAAAE
ptr+2 0xAAB3
ptr-1 0xAAA6
指標的運算運算 指向的位址
ptr 0xAAAA
ptr+1 0xAAAE
ptr+2 0xAAB3
ptr-1 0xAAA6
ptr-2 0xAAA2
指標與陣列之記憶體位址 int arr[5] = {0}; int *ptr = arr;
陣列語法 指標語法 記憶體位址
&arr[0] ptr+0 0x34ff30
指標與陣列之記憶體位址 int arr[5] = {0}; int *ptr = arr;
陣列語法 指標語法 記憶體位址
&arr[0] ptr+0 0x34ff30
&arr[1] ptr+1 0x34ff34
指標與陣列之記憶體位址 int arr[5] = {0}; int *ptr = arr;
陣列語法 指標語法 記憶體位址
&arr[0] ptr+0 0x34ff30
&arr[1] ptr+1 0x34ff34
&arr[2] ptr+2 0x34ff38
指標與陣列之記憶體位址 int arr[5] = {0}; int *ptr = arr;
陣列語法 指標語法 記憶體位址
&arr[0] ptr+0 0x34ff30
&arr[1] ptr+1 0x34ff34
&arr[2] ptr+2 0x34ff38
&arr[3] ptr+3 0x34ff3c
指標與陣列之記憶體位址 int arr[5] = {0}; int *ptr = arr;
陣列語法 指標語法 記憶體位址
&arr[0] ptr+0 0x34ff30
&arr[1] ptr+1 0x34ff34
&arr[2] ptr+2 0x34ff38
&arr[3] ptr+3 0x34ff3c
&arr[4] ptr+4 0x34ff40
指標與陣列之數值
int arr[5] = {1, 3, 5, 7, 9}; int *ptr = arr;
陣列語法 指標語法 數值
arr[0] *(ptr+0) 1
指標與陣列之數值
int arr[5] = {1, 3, 5, 7, 9}; int *ptr = arr;
陣列語法 指標語法 數值
arr[0] *(ptr+0) 1
arr[1] *(ptr+1) 3
指標與陣列之數值
int arr[5] = {1, 3, 5, 7, 9}; int *ptr = arr;
陣列語法 指標語法 數值
arr[0] *(ptr+0) 1
arr[1] *(ptr+1) 3
arr[2] *(ptr+2) 5
指標與陣列之數值
int arr[5] = {1, 3, 5, 7, 9}; int *ptr = arr;
陣列語法 指標語法 數值
arr[0] *(ptr+0) 1
arr[1] *(ptr+1) 3
arr[2] *(ptr+2) 5
arr[3] *(ptr+3) 7
指標與陣列之數值
int arr[5] = {1, 3, 5, 7, 9}; int *ptr = arr;
陣列語法 指標語法 數值
arr[0] *(ptr+0) 1
arr[1] *(ptr+1) 3
arr[2] *(ptr+2) 5
arr[3] *(ptr+3) 7
arr[4] *(ptr+4) 9