C++基礎

來源:互聯網
上載者:User

標籤:啟動   地址   class   參數傳遞   函數傳回值   ror   命名空間   使用   本質   

命名空間

主要是為瞭解決名稱衝突的問題

引用

變數的別名

引用和指標的區別:

  1.指標是個變數,可以把它再賦值指向別的地址

  2.建立引用的時候必須初始化,並且絕不會再關聯其他不同的變數。而指標可以一開始就賦值空,之後可以再改變指向其他地方。

由於指標也是變數,所以,可以有指標變數的引用,比如下面的看著有點詭異的代碼

int* a = NULL;    int*& ra = a;//表示int*的引用ra初始化為a    int b = 9;    ra = &b;//OK,ra是a的一個別名,是一個指標
  • void引用是不合法的

  void& a = 3;void只是在文法上相當於一個類型,本質上不是類型,沒有任何一個變數或者引用的類型的是void

  • 不能建立引用的數組
int a[10] ={0};int& ra[10] = a;//error
  • 沒有引用的指標和引用的引用
int a ;int& ra = a;int& *p = &ra;//error啟動定義一個引用的指標
  • 有null 指標,但沒有Null 參考
引用的參數傳遞
  • 傳遞引用給函數與傳遞指標的效果是一樣的。都能改變變數的值
  • 用引用作為參數比使用指標有更清晰的文法
  • 使用引用作為參數\傳回值,給函數帶來的意義

    1.函數只能返回一個值,如果要返回兩個值怎麼辦?可以用引用給函數傳遞兩個參數,然後由函數往目標中填入正確的值

    2.函數傳回值時要返回一個值的副本,而用引用返回時不需要產生副本,所以提高了效率

    注意:如果返回不在範圍範圍內的變數或者引用那就有問題了。這與返回一個局部範圍指標的性質一樣嚴重,比如

 

C++基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.