◆1、「儲存器」的概念◆2、儲存器的使用
1)定義變數時,系統為變數分配相應的儲存單元,通過變數名可以直接使用該儲存單元。例如:
int x=5,y;
y=15; // y可以理解成該儲存單元的當前名字
2) 通過儲存單元的位址來使用該儲存單元,這就需要有表示儲存單元位址的量——指標型變數。例如:
int *ip; // ip是乙個指標(變數)
ip=&y; // ip是儲存空間y的位址
cout<< ip<< &y<< y<< *ip; //結果?
◆3、指標的定義
按變數的位址直接訪問變數的方法稱為「直接訪問」方式。存貯變數的記憶體空間的首位址稱為該變數的位址。如果將乙個變數的位址放在另乙個變數中,則存放位址的變數稱為指標(pointer)型變數。由於指標變數中的值是另乙個變數的位址,我們習慣上形象地稱為指標變數指向該變數。
訪問變數也可以間接地由指標變數取得該變數的位址進行,稱為「間接訪問」方式。指標變數中的值簡稱為指標,所以指標就是位址。
間接引用運算子* :作用於乙個指標型別的變數,訪問該指標所指向的變數。例如:
int a=5, *pointer;
pointer=&a; //pointer指向a
*pointer=10; //間接訪問,相當於a=10
◆4、指標定義的語法
指標型別變數定義語句格式如下:
《存貯型別》 型別 *變數名1《,*變數名2…》;
例如:int *lp1,*lp2; //定義整型指標變數lp1,lp2
float *fp1, fp2; //實型指標flp1,實型變數fp2
所謂指標型別,按指標指向的變數的型別區分。基本型別和派生型別都有對應的指標型別,包括類(class),甚至還有指標型別(指向指標的指標,二級指標)。
◆1、對指標賦值
對指標賦值有三種情況 :
指標相互賦值:使兩指標指向同一變數。(檢視動畫演示)
指標賦null:空指標,指標懸空。不同於指標未賦值。
注意:不能給指標變數隨意賦乙個位址值,只能取乙個已經分配了記憶體的變數的位址賦給指標變數。變數或物件的記憶體位址是由編譯系統來分配的。
【例5.6】指標賦值例項:
#include
void main()
{int age1=18, age2=20, *p_age;
p_age=&age1;
cout<<"age of wang ping is"<<*p_age<◆2、指標變數初始化
例如: int age , *p_age=&age; //p_age初始化為指向整型量age。
任何型別指標都可以賦以0值(null),稱空指標,表示該指標不指向該型別的任何乙個變數(物件)。注意不是指向位址為0的記憶體空間。
常量是不可定址的,但常變數是可定址的,如:
p_age=&20; //錯誤
const float pi=3.14159;
float *pointer=π //正確
◆3、指標使用時注意
C 指標與位址詳解 0
1 儲存器 的概念 2 儲存器的使用 1 定義變數時,系統為變數分配相應的儲存單元,通過變數名可以直接使用該儲存單元。例如 int x 5,y y 15 y可以理解成該儲存單元的當前名字 2 通過儲存單元的位址來使用該儲存單元,這就需要有表示儲存單元位址的量 指標型變數。例如 int ip ip是乙...
C 指標與位址詳解 0
1 儲存器 的概念 2 儲存器的使用 1 定義變數時,系統為變數分配相應的儲存單元,通過變數名可以直接使用該儲存單元。例如 int x 5,y y 15 y可以理解成該儲存單元的當前名字 2 通過儲存單元的位址來使用該儲存單元,這就需要有表示儲存單元位址的量 指標型變數。例如 int ip ip是乙...
C 指標與位址
指標是一種儲存變數位址的變數,存放在一組連續的儲存單元中 通常是2或4個,後者居多 因為c語言本身的feature就很少,加上指標又非常的高效,指標已然成了c最大的特點。與指標相關的操作符有兩個,分別為 解引用 和 取位址 解引用這個詞比較令人費解,比方存在指標p,p c p中便儲存了 c 的位址,...