C++教學(十七):指標的運算

除了指定運算子=、取址運算子&與取值運算子*之外,還有+、-、++、--、+=與-=等運算子可以使用在指標上,也就是說,您在指標運算上只能進行加法與減法的動作。

指標的加法與減法與一般數值的加減法不同,在指標運算上加 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即是在記憶體位址上退後一個資料型態單位的長度。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 天才R 的頭像
    天才R

    做 個 有 趣 的 人

    天才R 發表在 痞客邦 留言(0) 人氣()