&(C的位運算符)

本詞條是多義詞,共6個義項
更多義項 ▼ 收起列表 ▲

&是C的位運算符的一種,進行邏輯與運算,格式是:變數1&變數2,進行計算時,將會把類型提升為int。二進制運算符&通過對兩個運算元一位一位的比較產生一個新的值,對於每個位,只有兩個運算元的對應位都為1時結果才為1.如10000001&11000000的結果為“10000000”.

c語言,c++,

c語言

在c語言裡,&代表取地址符或者邏輯與運算
功能:
  1. 取變數的地址:&變數名,這將獲得該變數的地址。
  2. 作為位運算符:運算元1&運算元2,將運算元對應位進行比對,二者都為1時返回1,否則返回0。

c++

在c++里,除了c語言的功能之外,還代表“引用”
只能在創建變數的時候使用,格式是:類型 &變數名=另一個變數。如:
inta=0,&b=a,c;
聲明三個變數a、b、c,b和a等價,c是獨立的變數
注意:
  1. 類型標識符是指目標變數(等於號右邊)的類型。
  2. 聲明引用時,必須同時對其進行初始化,不能讓他指向其他變數。
  3. 引用的聲明符放置在變數名的前面,和*操作符的用法一樣
  4. 引用聲明完畢後,相當於目標變數名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變數名的別名。 ra=1; 等價於 a=1;
    聲明一個引用,不是新定義了一個變數,它只表示該引用名是目標變數名的一個別名,它本身不是一種數據類型,因此引用本身不占存儲單元,系統也不給引用分配存儲單元。故:對引用求地址,就是對目標變數求地址。&ra與&a相等。
    可以建立數組的引用。
    #include<iostream> using namespace std; int main() { int m[10]={1,2,3,4,5,6,7,8,9,10}; int (&n)[10]=m; for(int i=0;i<10;i++) cout<<m[i]<<' ' ; cout<<endl; for( i=0;i<10;i++) cout<<n[i]<<' ' ; cout<<endl; return 0;}
  5. 值得一提的是,可以建立指針的引用
例如:
int*pointer;//建立一個指針int*&p1=pointer;/*正確,編譯系統把"int*"看成一體,把"&p1"看成一體,即建立指針pointer的引用,就是給指針pointer起別名p1。*/int&*p2=pointer;//錯誤,這就變成了引用的指針

相關詞條

熱門詞條

聯絡我們