指標運算:
指標演算法並不依賴於指標的型別,(如果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 ...