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

函數參數傳遞,一二事

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

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 鐘謝偉 閱讀(1395) 評論(0)  編輯 收藏 引用


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


<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

導航

統計

常用鏈接

留言簿(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>
            亚洲尤物视频网| 日韩午夜激情| 久久视频免费观看| 韩国欧美一区| 欧美va亚洲va香蕉在线| 免费欧美视频| 亚洲啪啪91| 一区二区三区日韩| 国产欧美午夜| 欧美88av| 欧美午夜片在线免费观看| 午夜亚洲影视| 久久久久在线| 亚洲新中文字幕| 欧美一级久久久久久久大片| 激情久久久久久久| 亚洲精品看片| 国产欧美一区二区精品仙草咪 | 国产婷婷色一区二区三区| 欧美中文字幕| 欧美成人免费一级人片100| 亚洲私人影院在线观看| 欧美一区二区三区视频| 亚洲欧洲精品一区二区三区波多野1战4 | 久久精品视频在线播放| 久久综合九色99| 亚洲一区二区成人| 久久久久久久一区二区三区| 中文精品在线| 在线观看91精品国产入口| 亚洲精品综合精品自拍| 国产一区二区在线观看免费| 欧美激情欧美狂野欧美精品| 国产精品久久久久久影视| 欧美成人免费大片| 国产精品一区二区三区成人| 亚洲成色www8888| 国产日本亚洲高清| 亚洲精品亚洲人成人网| 狠狠网亚洲精品| 亚洲视频在线观看| 亚洲老司机av| 久久噜噜亚洲综合| 欧美一级视频精品观看| 欧美久久电影| 亚洲丰满在线| 激情综合色综合久久综合| 亚洲一区精品在线| 亚洲视频网在线直播| 久久亚洲春色中文字幕久久久 | 国产日韩视频一区二区三区| 亚洲国产成人高清精品| 伊人精品视频| 久久国产乱子精品免费女| 午夜精品免费| 欧美亚男人的天堂| 亚洲作爱视频| 正在播放亚洲一区| 欧美日韩一二三区| 亚洲激情视频在线| 91久久中文字幕| 久久性色av| 美国成人直播| 国产欧美一区二区精品仙草咪| 日韩亚洲欧美在线观看| 亚洲毛片一区二区| 免费91麻豆精品国产自产在线观看| 久久成人免费电影| 国产一区自拍视频| 欧美在线视频在线播放完整版免费观看| 亚洲欧美在线高清| 国产精品人成在线观看免费| 亚洲精品视频免费| 一区二区欧美精品| 国产精品av一区二区| 99精品欧美一区| 亚洲一区二区综合| 国产美女高潮久久白浆| 欧美一区亚洲二区| 乱人伦精品视频在线观看| 在线不卡欧美| 欧美韩日精品| 亚洲一区二区高清视频| 亚洲欧美日韩精品在线| 国产欧美二区| 久久亚洲精选| 亚洲免费观看高清完整版在线观看| 国产精品99久久久久久宅男 | 国产精品video| 亚洲欧美日韩精品| 欧美成人亚洲成人| 日韩一区二区精品视频| 欧美日韩一区二区三区免费看| 亚洲午夜视频在线| 久久亚洲综合色| 亚洲啪啪91| 欧美三级视频在线观看| 欧美在线观看天堂一区二区三区| 免费观看30秒视频久久| 一本色道久久| 国内外成人免费激情在线视频网站 | 欧美va天堂va视频va在线| 亚洲人屁股眼子交8| 性一交一乱一区二区洋洋av| 在线成人av.com| 欧美性片在线观看| 久久综合亚州| 亚洲一区二区三区三| 蜜桃av一区二区| 午夜精品福利在线| 亚洲黄色成人| 国产亚洲成年网址在线观看| 欧美激情精品久久久六区热门 | 欧美激情aⅴ一区二区三区| 一区二区三区四区精品| 狠狠色综合网站久久久久久久| 欧美精品一区二区视频| 久久久精品性| 亚洲免费网址| 日韩亚洲综合在线| 欧美高清在线视频| 久久久久久国产精品一区| 亚洲无人区一区| 亚洲欧洲精品天堂一级| 国内在线观看一区二区三区| 国产精品久久久久999| 欧美精品成人在线| 免费观看一区| 久久久久在线观看| 欧美一区二区视频在线| 制服丝袜激情欧洲亚洲| 亚洲日韩中文字幕在线播放| 欧美刺激性大交免费视频 | 亚洲精品乱码久久久久| 黄色成人av| 国产一区二区中文字幕免费看| 欧美网站在线| 欧美日韩中文精品| 欧美日韩国产二区| 欧美日韩国产va另类| 欧美电影在线| 欧美精品激情| 欧美日韩在线免费| 欧美日韩免费观看一区| 欧美日韩黄视频| 欧美日在线观看| 国产精品国产三级国产普通话蜜臀| 欧美精品一区二区在线播放| 欧美黑人在线播放| 欧美激情视频一区二区三区在线播放| 蜜月aⅴ免费一区二区三区| 久久综合伊人| 免费欧美日韩| 欧美精品一区二区在线播放| 欧美精品日韩精品| 欧美日韩中文字幕| 国产精品成人v| 国产精品区一区| 国内精品久久久久影院 日本资源| 国产亚洲精品久久飘花| 在线精品亚洲| 日韩一级不卡| 欧美影院久久久| 久久激情五月激情| 久久伊伊香蕉| 最新日韩精品| 亚洲午夜视频在线观看| 亚洲欧美日韩在线观看a三区 | 亚洲国产一区二区视频| 亚洲日韩欧美一区二区在线| 亚洲视频一二三| 欧美一区激情| 欧美v亚洲v综合ⅴ国产v| 欧美日韩精品免费看| 国产精品一卡| 亚洲黄色av| 亚洲欧美日韩中文播放| 久久永久免费| 一本久道久久综合中文字幕| 欧美在线日韩精品| 欧美激情一区二区在线 | 欧美成人a∨高清免费观看| 国产精品国产三级国产专播品爱网| 国产一区99| 在线一区欧美| 欧美va天堂va视频va在线| 国产精品99久久久久久久久 | 亚洲一级一区| 免费成人av资源网| 国产精品伊人日日| 99re热精品| 美女国产一区| 亚洲综合欧美日韩| 欧美精品在线免费播放| 国产综合av| 亚洲欧美在线免费观看| 亚洲国产精品嫩草影院| 欧美一区二区精品久久911| 欧美日韩亚洲不卡| 91久久精品一区二区别|