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...