指向整數(shù)型的指針 C語言指針可以相加嗎?為什么?
C語言指針可以相加嗎?為什么?指針變量有加減運算,但我們要注意以下幾點:1。指針變量存儲地址值,即數(shù)字地址。例如,指針變量的值是0x20000000,這意味著指針變量將位于0x20000000的內存地
C語言指針可以相加嗎?為什么?
指針變量有加減運算,但我們要注意以下幾點:
1。指針變量存儲地址值,即數(shù)字地址。例如,指針變量的值是0x20000000,這意味著指針變量將位于0x20000000的內存地址存儲在內存中。指針變量可以加減,但只能用整數(shù)數(shù)據加減。此時,加法或減法的含義不是對其地址值的加法或減法。換句話說,如果指針變量p的值是0x20000000,那么p=p 2的值不是0x20000002,它不是地址值的簡單相加,因此地址值的加減多少與指針指向的數(shù)據類型有關。如果在32位操作系統(tǒng)上,P是指向整數(shù)數(shù)據的指針變量,那么在P=p2之后,P的地址值變成0x2000008,也就是說,地址值實際加了多少:sizeof(int)*2。為了說明白點,我們添加和減去的數(shù)字是由指針指向的數(shù)據類型度量的。p2表示P在內存中向前移動兩個int的距離。如果P不是int類型,而是其他類型,則相同。整數(shù)數(shù)據的指針減法也是如此。
2. 指針可以減,但不能加:可以減去兩個相同類型的指針變量。它們的含義表示兩個指針指向的內存位置之間分隔了多少個元素(請注意,它是一個元素,而不是字節(jié)數(shù))。例如,對于int類型的指針P和P1,P1-P的含義表示它們之間分隔了多少int類型的元素。其他類型的指針變量也是如此。指針變量的自加和自減實際上是整數(shù)1的加和減。
3. 大小可以在指針之間進行比較。但是,它也僅限于同一類型的兩個指針變量,比較不同類型指針變量的大小是沒有意義的。指針之間大小比較的含義表示它們在內存中指向的位置之間的高低關系。
指針是整數(shù)嗎,若不是整數(shù),指針為什么可以進行加減運算?
c語言中指針變量可以相加嗎?其含義是什么?
當指針指向一個數(shù)組元素時,您可以對指針執(zhí)行以下操作:加一個整數(shù)(帶或=),減一個整數(shù)(帶或-=),和自加,如P,P 自減操作,如減去兩個指針P--,-P,僅當P1和P2指向數(shù)組中的同一元素時才有意義)。