C語言指標

2021-08-08 01:35:39 字數 1792 閱讀 3480

1.不同型別的指標之間的運算沒有意義。

對於相同資料型別的指標來說,一方面是與數字的加減,一方面是指標間的加減:

2.指標變數中存放的是位址值,也就是乙個數字位址,例如

某指標變數中的值是

0x2000 0000,表示表示此指標變數存放的是記憶體中位於0x20000000地方的記憶體位址。指標變數可以加減,但是只能與整型資料加減,此時加減的含義並不是其位址值進行了加減,也就是說如果指標變數

p的值是0x20000000,那麼p=p+2;的值並不是

0x2000 0002,並不是位址值的簡單相加減,那麼位址值加減多少是與指標指向的資料型別相關聯的:如果在64位的作業系統,p是指向整型資料的指標變數,那麼p=p+2之後,p的儲存的位址值變成0x2000 0008;同理,如果在32位的作業系統上,p是指向整型資料的指標變數,那麼p=p+2之後,p的儲存的位址值變成0x20000008,也就說實際上位址值加了

sizeof(int)*2這麼多。說明白點,我們加減的數字是以指標指向的資料型別為量度的,p+2表示p在記憶體中前移兩個int的距離,如果p不是int型別,而是其他型別道理也是一樣。同樣指標與整型資料相減也是同樣的道理。

2.  

指標之間可以相減,但不可以相加(相加沒任何意義):兩個同一型別的指標變數是可以相減的,他們的意義表示兩個指標指向的記憶體位置之間相隔多少個元素

(注意是元素,並不是位元組數

),例如對於

int型別的指標p和

p1。p1-p

的意義表示他們之間相隔多少個

int型別的元素。

3.  指標之間可以比較大小。但是同樣也限於兩個相同型別的指標變數,不同型別的指標變數之間比較大小沒有任何意義。指標之間的大小比較的意義,表示在記憶體中他們指向的位置的高低關係。

C語言指標

指標變數是包含記憶體位址的變數,它指向記憶體中的一塊區域,通過指標的值,可以間接訪問到相應的記憶體單元的資料,並做相應的修改。1 指標的定義和簡單使用 定義乙個指標變數和定義一般的變數類似,只需在變數名前面加乙個 對乙個指標變數賦值可以用取位址符 來獲取到乙個變數的位址,如果要獲得指標指向的記憶體區...

C語言指標

1 定義指標變數void change int n 格式 變數型別 變數名 定義了乙個指標變數p 指標變數只能儲存位址 指標變數p前面的int 指標變數p只能指向int型別的資料 int main void change int n 2 指標與陣列 陣列名其實質是乙個指標,但是它和普通的指標變數還是...

c語言指標

編寫程式,在主函式裡用指標陣列輸入六個字串,再用另乙個函式對這六個字串排序,並在主函式中輸出排好序的字串。include void sort char s,int n char temp for int i 0 ifor int j 0 jif strcmp s j s j 1 0 temp s j...