除了指定運算子=、取址運算子&與取值運算子*之外,還有+、-、++、--、+=與-=等運算子可以使用在指標上,也就是說,您在指標運算上只能進行加法與減法的動作。
指標的加法與減法與一般數值的加減法不同,在指標運算上加 1 ,是表示前進一個資料型態的記憶體長度,例如在int型態的指標上加1,是表示在記憶體位址上前進4個位元組的長度,如以下的例子所示範的:
代碼:
#include iostream
using namespace std;
int main() {
int arr[10] = {0};
int *ptr;
ptr = arr;
cout ptr位置: ptr;
cout
ptr+1: ptr+1;
cout
ptr+2: ptr+2
;
return 0;
}
執行結果:
代碼:
ptr位置:0xbfffdb50
ptr+1:0xbfffdb54
ptr+2:0xbfffdb58
這個記憶體位址的顯示單位是位元組;由於我們宣告的是int型態的指標,所以每加1就會前進4個位元組的長度,如果您宣告的是double型態的指標,則每加1就會前進8個位元組,如以下的程式所示:
代碼:
#include iostream
using namespace std;
int main() {
double arr[10] = {0};
double *ptr;
ptr = arr;
cout ptr位置: ptr;
cout
ptr+1: ptr+1;
cout
ptr+2: ptr+2
;
return 0;
}
執行結果:
代碼:
ptr位置:0xbffff130
ptr+1:0xbffff138
ptr+2:0xbffff146
以上所舉的例子為指標的加法,在減法上觀念也是相同,對指標減1即是在記憶體位址上退後一個資料型態單位的長度。
- Mar 07 Mon 2011 20:48
C++教學(十七):指標的運算
C++教學(十七):指標的運算
全站熱搜
留言列表