指標的運算

2021-07-24 09:41:39 字數 863 閱讀 7640

指標運算:

指標演算法並不依賴於指標的型別,(如果p是乙個指向char的指標,那麼p+1就指向下乙個char)

算術運算:

指標的算數運算只限於兩種形式:

指標運算只有用於陣列中其結果才是可以**的,對於任何並非指向陣列元素的指標執行算數運算其結果是非法的

1.指標  +(-)整數---------------結果也是指標

這種形式只能用於指向陣列中某個元素的指標

。對乙個指標加1使它指向陣列中的下乙個元素

對指標執行加法或者減法之後的結果指標,如果結果指標指向陣列最後乙個元素的後面,那麼這個指標是合法的,

但是不能對這個指標執行間接訪問;如果結果指標指向第乙個元素的前面,那麼它就是非法的

2.指標  -  指標

只有當兩個指標都指向同乙個陣列中的元素時,才允許從乙個指標減去另乙個指標,

如果兩個指標指向的不是同乙個陣列中的元素,那麼它們相減的結果是未定義的

相減的結果是乙個有符號整數型別,指標減法的值進行調整(除以陣列元素型別的長度),通俗的講,

就是兩個指標在陣列中相隔多少個元素

例如:p--------arr[i]           q----------------arr[j]

那麼 q  -  p  =  j  -  i

越界指標和指向未知值的指標(一定要注意)

null指標:

就是不指向任何東西的指標,它可以賦值給乙個指標,表示那個指標並不指向任何值

注意:

定義乙個指標時,必須先進行初始化

當使用乙個指標時,必須先檢查指標是否為空,對乙個null指標執行間接訪問,兩個常見的後果是返回記憶體位置為0的值和終止程式

指標的運算

指標的運算包括 1 指標的加法 2 指標的減法 char short int long long long float double 位元組數 1 2 2 4 4 8 4 8 int不加說明為4個位元組 對指標的加法而言 指標是不能加指標的 它只能加乙個數字 比如 指標 1 加乙個單元格 需要調整 ...

指標的運算

include int main int p arr p 10 p p 20 printf d,08x n arr 0 arr 1 return 0 指標 1的含義,首先思考一下指標 1可能的幾個含義 1 加整個陣列 這種含義不太符合實際,題中要的是遍歷陣列中的數。如果是加整個陣列,那就是直接跳過去...

指標的運算

指標加法 指標 1 加乙個單元格 指標 數字 需要調整,調整的權重為sizeof 指標去掉乙個 指標全部為4個位元組 1級指標,2級指標。include int main 指標 數字 需要調整 include int main 指標 指標 1 算出位元組 2 除以調整的權重 include int ...