c/c++變量前加*和加&的區別


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則可以

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM