日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++函數(shù)傳遞三種方式解讀

C++編程語言中的函數(shù)可以以多種傳遞的方式來實現(xiàn)一些特定功能的實現(xiàn)。我們今天就為大家總結(jié)了這些傳遞方式,讓大家能夠?qū)@方面的知識有一個深刻的理解。首先就讓我們一起來看看C++函數(shù)傳遞的相關(guān)方式吧、

創(chuàng)新互聯(lián)服務項目包括東蘭網(wǎng)站建設、東蘭網(wǎng)站制作、東蘭網(wǎng)頁制作以及東蘭網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,東蘭網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到東蘭省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

C++函數(shù)傳遞的方式總共有三種,分別為:值傳遞、指針傳遞和引用傳遞。

值傳遞:

 
 
 
  1. void fun(int x)  
  2. {  
  3. x += 5; //修改的只是y在棧中copy x,x只是y的一個副本,在內(nèi)存中重新開辟的
    一塊臨時空間把y的值送給了x;這樣也增加了程序運行的時間,降低了程序的效率。  
  4. }  
  5. void main(void)  
  6. {  
  7. int y = 0;  
  8. fun(y);  
  9. cout<<\"y = \"<

 

指針傳遞:

 
 
 
  1. void fun(int *x)  
  2. {  
  3. *x += 5; //修改的是指針x指向的內(nèi)存單元值  
  4. }  
  5. void main(void)  
  6. {  
  7. int y = 0;  
  8. fun(&y);  
  9. cout<<<<\"y = \"<

 

引用傳遞:

 
 
 
  1. void fun(int &x)  
  2. {  
  3. x += 5; //修改的是x引用的對象值 &x = y;  
  4. }  
  5. void main(void)  
  6. {  
  7. int y = 0;  
  8. fun(y);  
  9. cout<<<<\"y = \"<

 

看了C++函數(shù)傳遞后我們繼續(xù)來談“const只能用于修飾輸入?yún)?shù)”的情況。#t#

當輸入?yún)?shù)用“值傳遞”方式時,我們不需要加const修飾,因為用值傳遞時,函數(shù)將自動用實際參數(shù)的拷貝初始化形式參數(shù),當在函數(shù)體內(nèi)改變形式參數(shù)時,改變的也只是棧上的拷貝而不是實際參數(shù)。

但要注意的是,當輸入?yún)?shù)為ADT/UDT(用戶自定義類型和抽象數(shù)據(jù)類型)時,應該將“值傳遞”改為“const &傳遞”,目的可以提高效率。

例如:

void fun(A a); //效率底。函數(shù)體內(nèi)產(chǎn)生A類型的臨時對象用于復制參數(shù) a,但是臨時對象的構(gòu)造、復制、析構(gòu)過程都將消耗時間。

void fun(A const &a); //提高效率。用“引用傳遞”不需要產(chǎn)生臨時對象,省了臨時對象的構(gòu)造、復制、析構(gòu)過程消耗的時間。但光用引用有可能改變a,所以加const

當輸入?yún)?shù)用C++函數(shù)傳遞中的“指針傳遞”方式時,加const修飾可防止意外修改指針指向的內(nèi)存單元,起到保護作用。

例如:

void funstrcopy(char *strdest,const char *strsrc) //任何改變strsrc指向的內(nèi)存單元,編譯器都將報錯

些時保護了指針的內(nèi)存單元,也可以保護指針本身,防止其地址改變。

例如:

 
 
 
  1. void funstrcopy(char *strdest,const char *const strsrc) 

以上就是對C++函數(shù)傳遞的三種方式的介紹。


本文標題:C++函數(shù)傳遞三種方式解讀
本文來源:http://m.5511xx.com/article/copidph.html