青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

函數參數傳遞,一二事

摘要:簡要比較了直接、指針、引用三中函數參數傳遞方式,并對其優缺點進行了大致的說明

1. 眾所周知,函數參數的直接傳遞就是實現一個拷貝值,這個拷貝值的變化,并不會改變原值的變化,因為兩個被來就是不同的個體,就好比兩個克隆的個體,雖然兩者之間有很多相同的地方,但是它們的思維是獨立的。

2. 通過指針的方式給函數參數傳值呢,從根本上來講,它仍然是直接傳值,但是這個拷貝的值比較特殊,是一個地址罷了,如:

   1: void fun(int *pnValue)
   2: {
   3:     ...;
   4: }
   5: int main()
   6: {
   7:     int nValue = 6;
   8:     fun(&nValue);
   9: }

它其實是將nValue的地址拷貝給了pnValue,如果在fun函數中,一開始就將pnValue的值給改變,如pnValue=&nValue2,那么pnValue指向的內容的改變,將不會影響到nValue。

同時有一點需要注意的是,空指針對象是沒有意義的,會引起程序的奔潰,因此在開始因該進行檢測,if(!pnValue) return;

通過指針傳參數的優點:

1) 允許你改變傳遞的參數的值

2) 由于它拷貝的僅僅是一個字節大小的地址,因此傳遞的過程是快速的,特別對于較大的結構或是類

3) 我們通過這種傳參方式,獲取從函數中返回的多個量

缺點:

1) 傳遞的只能是普通的變量,不能是字面常量或表達式

2) 所有的傳遞值都得檢查是不是空指針

3. 通過引用的方式傳遞參數

雖然在底層的操作中,通過引用也是通過“指針的方式”進行實現的http://blog.csdn.net/wanwenweifly4/article/details/6739687),但是從語言上考慮,引用是對象的別名,也是一個對象,并不是指針,因為它的概念是在語言上定義的,而不是底層的實現方式,換一種思維,拋開所有的比匯編語言高級的語言,回到匯編語言建立初期,單單從匯編語言上考慮,那時有沒有指針的概念呢?因此應該理性的對待引用在C++語言中的概念,也應該冷靜的認識它在底層中的實現方式,區分的對待,其實也不用爭執于這個問題,認清了,會用了,就成了。(這些僅個人見解,批判的看待吧)。

它在傳參中的優點:

1) 允許你改變傳遞的參數的值

2) 傳遞的過程是快速的,特別對于較大的結構或是類

3) 可以通過添加一個const,避免不經意的改變

4) 我們通過這種傳參方式,獲取從函數中返回的多個量

缺點:

1) 非const類型的參數,傳遞的只能是普通的變量,不能是字面常量或表達式

2) 不容易區分哪些變量是input,需要output,或都是

3) 通過函數的調用,很難看出那個參數是將被改變的,因為它和直接傳值的方式相同,只能通過函數原型進行辨認,當程序員不小心忽視的時候,可能會導致錯誤的發生

 

ps:

   1: #include <iostream>
   2:  
   3: int nFive = 5;
   4: int nSix = 6;
   8: void SetToSix(int *pTempPtr);
   9:  
  10: int main()
  11: {
  12:     using namespace std;
  13:  
  16:     int *pPtr = &nFive;
  19:     cout << *pPtr;
  20:  
  23:     SetToSix(pPtr);
  27:     cout << *pPtr;
  28:  
  29:     return 0;
  30: }
  31:  
  33: void SetToSix(int *pTempPtr)
  34: {
  35:     using namespace std;
  36:  
  38:     pTempPtr = &nSix;
  41:     cout << *pTempPtr;
  42: }

上面這個程序中輸出的結果是 565

如果想使得輸出的結果為566呢,有一個方法可以實現,就是采用指針的引用,如下:

   1: // pTempPtr is now a reference to a pointer to pPtr!
   2: // This means if we change pTempPtr, we change pPtr!
   3: void SetToSix(int *&pTempPtr)
   4: {
   5:     using namespace std;
   6:  
   7:     pTempPtr = &nSix;
   8:  
   9:     // This will print 6
  10:     cout << *pTempPtr;
  11: }

posted on 2012-05-23 22:16 鐘謝偉 閱讀(1396) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

導航

統計

常用鏈接

留言簿(1)

隨筆檔案

IT網站

My Friends

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人高清| 亚洲天堂偷拍| 亚洲午夜在线视频| 亚洲欧洲久久| 欧美一区二区黄| 亚洲一区日本| 欧美激情综合五月色丁香小说| 久久婷婷国产麻豆91天堂| 国产精品久久久久久久久久久久久| 欧美不卡视频一区发布| 国产亚洲综合精品| 亚洲一区中文| 亚洲欧美一区二区视频| 欧美三级在线播放| 99视频一区二区| 一区二区三区四区五区视频| 欧美本精品男人aⅴ天堂| 嫩模写真一区二区三区三州| 国产在线乱码一区二区三区| 亚洲性av在线| 一区二区免费在线视频| 久久永久免费| 久热精品视频在线| 国产精品一二三| 一本色道精品久久一区二区三区| 亚洲国产精品久久久| 久久av在线看| 欧美自拍偷拍| 欧美色图五月天| 亚洲黄网站在线观看| 在线国产亚洲欧美| 久久成人精品一区二区三区| 午夜日韩激情| 国产精品久久久久久影视| 亚洲精品国产拍免费91在线| 亚洲福利专区| 久久综合狠狠综合久久综青草 | 亚洲国产一区二区三区高清| 亚洲欧美日韩区| 午夜精品福利一区二区蜜股av| 欧美三区在线| 亚洲一区在线直播| 欧美中文日韩| 国产在线观看一区| 久久精品午夜| 女仆av观看一区| 亚洲茄子视频| 欧美另类一区| 一个色综合导航| 香蕉视频成人在线观看| 国产欧美一区二区三区久久人妖| 一区二区三区四区五区在线| 亚洲一区久久久| 国产精品视频成人| 久久福利资源站| 久久精品国产欧美激情| 一色屋精品视频在线看| 美女脱光内衣内裤视频久久网站| 欧美激情一区二区三区全黄 | 欧美一级免费视频| 国产日本欧美一区二区三区在线 | 亚洲福利国产| 欧美精品一区二区三区很污很色的 | 久久精品国产一区二区电影 | 欧美体内she精视频在线观看| 在线亚洲成人| 久久亚洲影音av资源网| 亚洲精品在线三区| 欧美午夜一区二区| 欧美一区高清| 亚洲激情视频在线| 性欧美在线看片a免费观看| 国产精品一区二区三区久久| 亚洲午夜av| 久久久久久久久综合| 国产精品扒开腿做爽爽爽视频| 午夜国产不卡在线观看视频| 免费日韩成人| 午夜精品久久久久久久| 亚洲国产美女| 国产精品一区在线观看| 嫩草影视亚洲| 午夜亚洲性色视频| 亚洲区一区二区三区| 欧美一级片一区| 日韩视频一区二区三区| 国产日韩欧美综合一区| 欧美电影在线免费观看网站| 午夜在线一区| 欧美国产日韩一二三区| 欧美亚洲专区| 99热这里只有成人精品国产| 国内视频一区| 国产精品久久久久久久久免费| 久久一区二区三区四区| 亚洲自拍偷拍麻豆| 亚洲精品久久久久| 久久一区激情| 久久成人18免费网站| 一区二区三区久久网| 亚洲国产精品一区二区第四页av| 国产乱理伦片在线观看夜一区| 欧美成人精品h版在线观看| 欧美一激情一区二区三区| 一区二区三区欧美| 亚洲人成网站精品片在线观看| 久久综合五月| 久久精品国产91精品亚洲| 亚洲一二三四区| 亚洲美女av电影| 亚洲国产专区校园欧美| 精品91视频| 在线成人www免费观看视频| 国产乱码精品| 国产精品一卡| 国产精品中文字幕欧美| 欧美日韩在线播放三区四区| 欧美成人国产| 欧美日韩高清不卡| 欧美日本免费| 欧美日韩亚洲一区二区| 欧美日韩在线播放一区二区| 欧美日韩国产小视频| 欧美日本高清| 欧美另类亚洲| 欧美三级电影一区| 国产精品日日做人人爱| 国产精品无人区| 国产女人18毛片水18精品| 国产精品三级久久久久久电影| 国产人成精品一区二区三| 国产精品美女www爽爽爽| 国产精品理论片在线观看| 国产精品一区二区在线观看网站| 国产精品尤物福利片在线观看| 国产精品自拍在线| 国产亚洲一区二区三区在线观看 | 亚洲电影在线播放| 91久久夜色精品国产九色| 亚洲国产精品999| 亚洲国产va精品久久久不卡综合| 国产亚洲欧美日韩日本| 国产日产欧产精品推荐色| 狠狠狠色丁香婷婷综合久久五月| 在线欧美亚洲| 一区二区高清| 一区二区三区日韩欧美精品| 亚洲免费中文| 久久亚洲捆绑美女| 亚洲人体偷拍| 亚洲小视频在线| 久久久欧美一区二区| 欧美极品欧美精品欧美视频| 欧美午夜欧美| 国内精品久久久久久| 一区二区国产精品| 久久久久国产精品一区| 欧美激情第9页| 亚洲视频在线看| 久久久一二三| 国产精品女人久久久久久| 狠狠色狠狠色综合人人| 一区二区免费在线播放| 久久精品免视看| 亚洲国产日韩精品| 亚洲精品乱码| 久久人人97超碰精品888| 欧美日韩国产亚洲一区| 激情综合激情| 亚洲一区二区三区免费在线观看| 久久久一本精品99久久精品66| 亚洲高清视频在线观看| 性欧美大战久久久久久久久| 欧美激情精品久久久久久变态| 国产精品你懂的在线欣赏| 亚洲欧洲日韩综合二区| 欧美一区二区视频观看视频| 亚洲国产精品第一区二区| 亚洲欧美日韩精品久久亚洲区 | 亚洲欧美综合一区| 亚洲成人在线视频播放| 亚洲午夜视频在线| 美女视频黄a大片欧美| 国产一区二区三区网站| 亚洲欧美999| 麻豆av福利av久久av| 欧美一区=区| 国产精品亚洲一区| 亚洲一区二区三区乱码aⅴ| 欧美国产一区二区在线观看| 亚洲欧美制服中文字幕| 欧美日韩影院| 在线视频亚洲一区| 亚洲人www| 久久中文字幕导航| 亚洲第一黄色网| 老牛影视一区二区三区| 亚洲欧美日韩中文视频| 国产精品美腿一区在线看| 99视频热这里只有精品免费|