存放地址的變數稱為指標變數。指標變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是資料本身,而指標變數存放的是資料的地址。
假設在程式中聲明瞭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 ;
存放地址的變數稱為指標變數。指標變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是資料本身,而指標變數存放的是資料的地址。
假設在程式中聲明瞭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 ;