-
&
(C的位運算符)
鎖定
- 外文名
- &
- 屬 性
- C的位運算符與取地址符
&c語言
在c語言裏,&代表取地址符或者邏輯與運算
功能:
- 取變量的地址:&變量名,這將獲得該變量的地址。
- 作為位運算符:操作數1&操作數2,將操作數對應位進行比對,二者都為1時返回1,否則返回0。
&c++
在c++裏,除了c語言的功能之外,還代表“引用”
只能在創建變量的時候使用,格式是:類型 &變量名=另一個變量。如:
inta=0,&b=a,c;
聲明三個變量a、b、c,b和a等價,c是獨立的變量
注意:
- 類型標識符是指目標變量(等於號右邊)的類型。
- 聲明引用時,必須同時對其進行初始化,不能讓他指向其他變量。
- 引用的聲明符放置在變量名的前面,和*操作符的用法一樣
- 引用聲明完畢後,相當於目標變量名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名作為其他變量名的別名。 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;}
- 值得一提的是,可以建立指針的引用
例如:
int*pointer;//建立一個指針 int*&p1=pointer; /* 正確,編譯系統把"int*"看成一體,把"&p1"看成一體,即建立指針pointer的引用,就是給指針pointer起別名p1。 */ int&*p2=pointer;//錯誤,這就變成了引用的指針