C++學習總結(2)

來源:互聯網
上載者:User

標籤:bsp   常量   指標   使用   nbsp   span   理解   return   不能   

1、const指標

指向常量的指標變數,其一般形式為 "const 類型名 * 指標變數名 " 。 如下:

int a=12,b=15;const int *p=&a;int *q=&b;*p=22;//非法,試圖通過p修改a的值*q=22;//一般的指標變數可以修改,合法p=&b;//p改為指向b,合法。

 

2、引用

  對於資料可以建立一個“引用”,它的作用是為變數起另一個別名。

int main(){int a=5;int &b=a;printf("%d\n",b);}

  以上聲明了b是a的引用,即b是a的別名,這樣聲明後,a和b的作用是相同的,都代表同一變數。可以這樣去理解:通過b去引用a。在上面的聲明中,"&"是引用聲明符,不代表地址。

需要注意幾點:

  1. 引用是一種獨立的資料類型。對引用只有聲明,沒有定義。即必須先定義一個變數,然後對該變數建立一個引用。
  2. 聲明一個引用,必須同時使之初始化,即聲明它代表哪一個變數。
  3. 聲明另一個變數後,不能再使之作為另一個變數的引用。
  4. 不能建立引用數組如:
    int main(){int a[5];int &b[5]=a;//錯誤,不能建立引用數組int &b=a[0];//錯誤,不能作為數組元素的別名}
  5. 不能建立引用的引用。
    int main(){int a=3;int &b=a;int &c=b;//建立引用的引用,錯誤}
  6. 可以取引用的地址,如聲明b是a的引用,則&b就是變數a的地址。
    int main(){int *pt;pt=&b;//把變數a的地址&a賦給指標變數pt}
3、運算子new和delete

  C++提供了較簡便而功能強大的運算子new和delete來代替malloc和free函數,因此最好不用malloc和free;

int main(){int m=3,n=4,i;int **a  =  new int*[m];  //分配一個指標數組,將其首地址儲存在a中   、for(i = 0; i < m; i++)   //為指標數組的每個元素分配一個數組       a[i] = new int [n];//動態聲明的數組,使用後需要釋放記憶體。for(i = 0;i < m; ++i)delete [] a[i];delete []a;return 0;}

  

 

C++學習總結(2)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.