C 高階之指標算術

2021-08-27 08:25:55 字數 515 閱讀 2054

c++將陣列名視為陣列的第乙個元素的位址。

如果兩個指標不是指向同乙個陣列,對兩個指標進行加減或者進行比較是沒有任何意義的。

並且兩個指標指向同乙個陣列,兩個指標進行加減運算實際上是對陣列中的元素進行加減或者比較運算的,這樣得出的是沒有什麼實際意義的。

加1的結果等於原來的位址上加上指向的物件占用的總位元組數。還可以將乙個指標減去另乙個指標,獲得兩個指標的差。後一種運算將得到乙個整數,僅當兩個指標指向同一陣列(也可以指向超出結尾的乙個位置)時,這種運算才有意義;這將得到兩個元素的間隔。舉例如下:

按照書上的例子,如果int在記憶體中佔4位元組,則兩位址相減則相差是28,但注意到diff時int型別,所以在輸出的時候還得除以4,最後的輸出是7,也就是陣列位址之間的間隔。 

c高階之指標1

1指標 指標的實質就是個變數,它跟普通變數沒有任何區別,指標完整的名字是 指標變數。int a與int p 中a與p繫結的記憶體空間都是4個位元組 指標出現是為了間接訪問 cpu間接定址是cpu設計時決定的 p與 x列印指標,列印出的值是一樣的 下面四種在效果上是一樣的,編譯器不會報錯 int p1...

c高階之指標2

1指標與強制型別轉換 int char short 相容型 是同一類屬於整型,他們的儲存方式 即轉換成記憶體中的二進位制的方式 是相同的,只是記憶體格仔長度不一樣。float是一類 double是一類 a做左值存數進去時,是按照a的資料型別來儲存的,用printf 來讀取時是按照裡面的 d,f,c之...

C高階之指標(一)

陣列指標與指標陣列 1.陣列指標 下面部分程式的目的是想通過函式列印二維陣列元素,include int array 3 4 int print array int p,int m,int n inti,j for i 0 i m i for j 0 j n j printf d p i j pri...