指標的算術運算

2021-08-17 04:42:38 字數 651 閱讀 6232

指標+1(-1同理)

給定乙個陣列,陣列指標+1可能表示為三種情況:

1.加乙個位元組 :程式出錯

2.加整個陣列:這個操作完全沒意義。

3.加乙個單元格:乙個單元格幾個位元組是根據定義的指標的型別來定的,例如char,指標加1就是乙個位元組,即乙個單元格。

總結:指標加法需要調整(加1單元格),調整的權重為指標去掉乙個星號,然後求指標sizeof,例如  

int*p; p+1

為加4個位元組=sizeof(int)

又例如  char**p; p+1為加4個位元組=sizeof(char*),指標在32位的操作平台為4位。

指標-指標

int *p=arr;

int *q=&arr[5];

p+q   // 非法,為乙個未知的位址

q-p //合法,可以算出間隔的位元組數,再除以權重,可以計算出間隔的單元格數。

例如: 

int *p=arr[1]; int *q=arr[9];

即 (int*)q-(int*)p=8=32/4  //4為權重

指標的算術運算

指標可以加上或減去乙個整數的算術運算。首先來看個例子 include int main void short st 3 double pw wa short ps st 0 cout pw 分析上面的程式,我們可以看到,c 一般把陣列名和第乙個元素的位址等價,所以我們可以用上面的兩種方法初始化指標,...

指標的算術運算

指標和陣列 指標和陣列在c語言中有錯綜複雜的聯絡。在前面的課程中,你學會了如何宣告陣列變數 int anarray 5 declare array of 5 integers 關聯陣列實際上是指標,指向陣列的第乙個元素!因為陣列變數 是指標,你可以解析它 它返回 陣列元素0 123 4567 int...

指標的算術運算

指標的算術運算 c語言允許你在指標執行整數的加減運算。如果pnptr指向乙個整數,pnptr 1 pnptr後在記憶體中的位址的下乙個整數。pnptr 1是在pnptr以前的整數字址。請注意,pnptr 1不在pnptr返回位址,但下乙個物件,pnptr分型。如果pnptr指向乙個整數 假設4位元組...