1.*介紹
變量前加*號,只有在變量為指針情況下才是合法的
當*用於定義時,是標明該變量為指針類型
除此以外,*的作用是取值。
C++中的指針可以理解為一個地址的值,*用於取值時就是取出改地址中存儲的值
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int a = 10; 6 int *p; // p 為整型指針 7 8 p = &a; // p 指向a的地址 9 cout<<"*p的值為"<<*p<<endl; //輸出*p的值,在這里等於a 10 a = 20; 11 cout<<*p<<endl; 改變a的值就是改變*p的值 12 return 0; 13 }
該程序輸出為:
*p = 10; *p = 20;
可以看到*p的值與a的值同步,可以說*p等於a。
2.&介紹
&:一個是取地址符作用,另一個是引用
int a; int*p = &a; //這就是取地址符,指針p指向對象a。p的值為a的地址。 int b; int &c = b; //這是引用,定義一個引用就是c是b的一個別名。c就是代表的b。 //注意這里的聲明引用需要初始化。
注意:&是取址符號。但&也可以有另一個用法,就是是其它變量的別名,如int &a=b;此時a就是b,b就是a,改變a的值也就改變了b的值。但聲明時必須初始化,不能空聲明,如:int &a是錯的,int &a = b則可以