指標的移動

2021-10-02 17:01:13 字數 457 閱讀 6494

1、指標移動:所謂指標移動就是對指標變數加上減去乙個整數,或通過賦值運算,使指標變數向相鄰的儲存單元。(因此只有當指標指向一串連續的儲存單元時,指標的移動才有意義)

1122

3344

55a[0]

a[1]

a[2]

a[3]

a[4]

p=&a[0]

q=p+2

q++q++

q–p++

對指標進行加減運算時,數字「1」不再代表十進位制數1,而是指乙個單位儲存單元長度。這個單元到底多長,要看儲存資料的型別。

如果是int型別,則代表乙個儲存單元長度就是位移4個位元組。如果是char型別,則代表乙個儲存單元長度就是位移1個位元組,如果變數的型別是double型別,8個位元組為乙個單位,而指向它的指標是int,4個位元組為乙個單位,那麼這個時候指標每移動乙個單位就是代表移動4個位元組的長度 ,這時候讀取資料就會出現錯誤。

雜談指標 指標的移動

剛剛在群裡看到乙個這樣的問題 monopixel pbyte inc integer monopixel 這個在32位下沒問題,為啥64位不能編譯呢?咋一看,以為是把裡面的值進行累加,後來一想應該是移動一下指標。對於這種移動指標的做法有兩個錯誤 第乙個是用了integer,來轉換指標如果在32位下面...

雜談指標 指標的移動

剛剛在群裡看到乙個這樣的問題 monopixel pbyte inc integer monopixel 這個在32位下沒問題,為啥64位不能編譯呢?咋一看,以為是把裡面的值進行累加,後來一想應該是移動一下指標。對於這種移動指標的做法有兩個錯誤 第乙個是用了integer,來轉換指標如果在32位下面...

檔案指標的移動 新增

檔案指標移動 大前提 檔案內指標的移動是bytes為單位的,唯獨t模式下的read讀取內容個數是以字元為單位 f.read 3 with open a.txt mode rt encoding utf 8 as f data f.read 3 print data with open a.txt m...