<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Fork me on GitHub

      C++ 箭頭-> 雙冒號(hào):: 點(diǎn)號(hào).操作符區(qū)別(轉(zhuǎn))

      轉(zhuǎn)自 https://blog.csdn.net/yuan_4715/article/details/6283472

      引用是C++中的概念,初學(xué)者容易把引用和指針混淆一起。 
      一下程序中,n是m的一個(gè)引用(reference),m是被引用物(referent)。 
      int m; 
      int &n = m; 
      n相當(dāng)于m的別名(綽號(hào)),對(duì)n的任何操作就是對(duì)m的操作。 
      所以n既不是m的拷貝,也不是指向m的指針,其實(shí)n就是m它自己。 

      引用的規(guī)則: 

      (1)引用被創(chuàng)建的同時(shí)必須被初始化(指針則可以在任何時(shí)候被初始化)。 
      (2)不能有NULL引用,引用必須與合法的存儲(chǔ)單元關(guān)聯(lián)(指針則可以是NULL)。 
      (3)一旦引用被初始化,就不能改變引用的關(guān)系(指針則可以隨時(shí)改變所指的對(duì)象)。 

      以下示例程序中,k被初始化為i的引用。 
      語(yǔ)句k = j并不能將k修改成為j的引用,只是把k的值改變成為6。 
      由于k是i的引用,所以i的值也變成了6。 
      int i = 5; 
      int j = 6; 
      int &k = i; 
      k = j; // k和i的值都變成了6; 

      引用的主要功能是傳遞函數(shù)的參數(shù)和返回值。 

      C++語(yǔ)言中,函數(shù)的參數(shù)和返回值的傳遞方式有三種:值傳遞、指針傳遞和引用傳遞。 

      以下是"值傳遞"的示例程序。 

      由于Func1函數(shù)體內(nèi)的x是外部變量n的一份拷貝,改變x的值不會(huì)影響n, 所以n的值仍然是0。 
      void Func1(int x) 

      x = x + 10; 

      ... 
      int n = 0; 
      Func1(n); 
      cout << "n = " << n << endl; // n = 0 

      以下是"指針傳遞"的示例程序。 

      由于Func2函數(shù)體內(nèi)的x是指向外部變量n的指針,改變?cè)撝羔樀膬?nèi)容將導(dǎo)致n的值改變,所以n的值成為10。 
      void Func2(int *x) 

      (* x) = (* x) + 10; 

      ... 
      int n = 0; 
      Func2(&n); 
      cout << "n = " << n << endl; // n = 10 

      以下是"引用傳遞"的示例程序。 

      由于Func3函數(shù)體內(nèi)的x是外部變量n的引用,x和n是同一個(gè)東西,改變x等于改變n,所以n的值成為10。 
      void Func3(int &x) 

      x = x + 10; 

      ... 
      int n = 0; 
      Func3(n); 
      cout << "n = " << n << endl; // n = 10 

      對(duì)比上述三個(gè)示例程序,會(huì)發(fā)現(xiàn)"引用傳遞"的性質(zhì)象"指針傳遞",而書寫方式象"值傳遞"。 

      實(shí)際上"引用"可以做的任何事情"指針"也都能夠做,為什么還要"引用"這東西? 
      答案是"用適當(dāng)?shù)墓ぞ咦?a target="_blank" rel="noopener nofollow">恰如其分的工作"。 

      指針能夠毫無約束地操作內(nèi)存中的任何東西,盡管指針功能強(qiáng)大,但是非常危險(xiǎn)。 

      如果的確只需要借用一下某個(gè)對(duì)象的"別名",那么就用"引用",而不要用"指針",以免發(fā)生意外。

       

       

       

      -------------------------------------------------------------------------------------------------------------------------------------------------

       

      首先介紹一下C++中的結(jié)構(gòu)。對(duì)于一個(gè)結(jié)構(gòu)來說,


      struct MyStruct { 
      int member_a; 
      };


      如果有個(gè)變量MyStruct s,那么使用其中的成員元素時(shí)可以用


      s.member_a = 1;


      如果采用指針方法訪問,比如MyStruct * ps,那么同樣的訪問必須用箭頭號(hào):


      ps->member_a = 1;



      ::只用在類成員函數(shù)和類成員變量中。比如,聲明一個(gè)類:


      class CA { 
      public: 
      int ca_var; 
      int add(int a, int b); 
      int add(int a); 
      };


      那么在實(shí)現(xiàn)這個(gè)函數(shù)時(shí),必須這樣書寫:


      int CA::add(int a, int b) 

      return a + b; 
      }


      另外,雙冒號(hào)也常常用于在類變量?jī)?nèi)部作為當(dāng)前類實(shí)例的元素進(jìn)行表示,比如:


      int CA::add(int a) 

      return a + ::ca_var; 
      }


      表示當(dāng)前類實(shí)例中的變量ca_var。

       

      c++中當(dāng)定義類對(duì)象是指針對(duì)象時(shí)候,就需要用到->指向類中的成員;當(dāng)定義一般對(duì)象時(shí)候時(shí)就需要用到"."指向類中的成員....... 
      例如:

      class A 

      public 
      play(); 
      }


      如果定義如下:


      A *p則:p->play()使用; 左邊是結(jié)構(gòu)指針。
      A p 則:p.paly()使用; 左邊是結(jié)構(gòu)變量。

      posted on 2019-02-20 10:47  pengyingh  閱讀(1168)  評(píng)論(0)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 免费观看全黄做爰大片| 亚洲欧洲日产国码久在线| 国产jlzzjlzz视频免费看| 精品国产乱弄九九99久久| 亚洲高清日韩heyzo| 国产成人精品1024免费下载| 久久精品国产99麻豆蜜月| 精品一精品国产一级毛片| 2021国产精品视频网站| 无码丰满人妻熟妇区| 中文字幕亚洲人妻一区| 蜜桃av无码免费看永久| 亚洲av成人一区在线| 国产女人18毛片水真多1| 另类 专区 欧美 制服| 亚洲中文字幕无码一久久区| 日本精品一区二区不卡| 午夜福利92国语| 精品少妇av蜜臀av| 精品无码国产一区二区三区av| 一区二区三区不卡国产| 亚洲日本va午夜中文字幕久久| 国产亚洲精品一区二区无| 内射老妇bbwx0c0ck| 国产精品一区二区不卡91| 精品免费看国产一区二区| 伽师县| 日韩无专区精品中文字幕| 国产婷婷色一区二区三区| 久久一亚色院精品全部免费| 亚洲av成人一区在线| 人妻少妇精品视频专区| 亚洲嫩模一区二区三区| 欧美人与动人物牲交免费观看| 欧美人妻一区二区三区| 久久人人97超碰精品| 色综合国产一区二区三区| 亚洲小说乱欧美另类| 加勒比无码人妻东京热| 日本道不卡一二三区视频| 天堂一区二区三区av|