回覆列表
  • 1 # 使用者2020809458929

    指標變數是有加減運算的,但是要注意以下幾點:

    1.指標變數中存放的是地址值,也就是一個數字地址,例如某指標變數中的值是0x20000000,表示表示此指標變數存放的是記憶體中位於0x20000000地方的記憶體地址。指標變數可以加減,但是隻能與整型資料加減,此時加減的含義並不是其地址值進行了加減,也就是說如果指標變數p的值是0x20000000,那麼p=p+2;的值並不是0x20000002,並不是地址值的簡單相加,那麼地址值加減多少是與指標指向的資料型別相關聯的,如果在32位的作業系統上,p是指向整型資料的指標變數,那麼p=p+2之後,p的地址值變成0x20000008,也就說實際上地址值加了多少呢:sizeof(int)*2這麼多。說明白點,我們加減的數字是以指標指向的資料型別為量度的,P+2表示p在記憶體中前移兩個int的距離,如果p不是int型別,而是其他型別道理也是一樣。同樣指標與整型資料相減也是同樣的道理。

    2.指標之間可以相減,但不可以相加:兩個同一型別的指標變數是可以相減的,他們的意義表示兩個指標指向的記憶體位置之間相隔多少個元素(注意是元素,並不是位元組數),例如對於int型別的指標p和p1. p1-p的意義表示他們之間相隔多少個int型別的元素。同樣對於其他型別的指標變數之間相減的意義也是一樣。 指標變數的自加和自減實際上是與整數1的加減運算。

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

  • 中秋節和大豐收的關聯?
  • 宇宙中光的速度為何如此恆定嚴謹,宇宙又為何如此嚴謹?