回覆列表
  • 1 # 使用者3926722064098

    存放地址的變數稱為指標變數。指標變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是資料本身,而指標變數存放的是資料的地址。

    假設在程式中聲明瞭1個int型的變數a,其值為68。系統為變數a分配的首地址為0X65FDF4H,pa是存放變數a地址的指標變數,即pa中存放的值為0x065FDF4H。

    對變數a的訪問有兩種方式:一是直接按地址0x065FDF4H找到a的儲存單元,從而對變數a進行訪問;二是按系統為pa分配的地址先找到pa,然後根據pa的值(即變數a地址0x065FDF4H)找到變數a在記憶體中的儲存單元,從而對變數a進行訪問。對於前一種訪問方式稱為直接訪問方式,後一種訪問方式稱為間接訪問方式。

    如果一個指標變數存放的是某個物件的地址,則稱這個指標變數指向該物件。在C++程式設計中,指標變數只有確定了指向才有意義。

    1. 定義指標變數的一般形式如下:

    型別名*指標變數名1,*指標變數名2,... *指標變數名n ;

    2. 空指標

    空指標是一個特殊的指標,它的值是0,C語言中用符號常量NULL(在stdio.h中定義)表示這個空值,並保證這個值不會是任何變數的地址。空指標對任何指標型別賦值都是合法的。一個指標變數具有空指標值表示當前它沒有指向任何有意義的東西。

    3. void指標

    (void *)型別的指標叫通用指標,可以指向任何的變數,C語言允許直接把任何變數的地址作為指標賦給通用指標。但是有一點需要注意void*不能指向由const修飾的變數,eg const int test; void * ptv; ptv = &test;第三句是非法的,只有將ptv申明為const void * ptv;上述第三句(ptv = &test),才是合法的.

    當需要使用通用指標所指的資料參加運算時,需要寫出型別強制轉換。如通用指標ptv 所指空間的資料是整型資料,p是整型指標,用此式轉換:p=(int *)ptv ;

  • 中秋節和大豐收的關聯?
  • 暈堂是什麼原因?