<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
程式碼如下:
void swap1(int x,int y) { int temp = x; x = y; y = temp; }//main函數裡寫入 swap1(a,b);即可 其中x,y形參 a,b實參
這裡我用swap1()交換函數做舉例,函數內容部分是非常經典的三步交換值的程式碼,這樣就完成了一個非常簡單的值傳遞函數。
我們經常聽到這樣一句話“指標指向地址”,沒錯,指標用來存放變數的地址,這樣可以有效的節省記憶體空間。例如
int a=6; int *p=&a; cout<<"a的值為:"<<a<<endl; 和cout<<"*p的值為:"<<*p<<endl;
上面兩個輸出結果都是一樣的,其中p=&a,意為p現在是變數a的地址,而*p就相當於*&a,這樣*和&抵消,實際上*p就表示變數a的值
程式碼如下:
void swap2(int *x,int *y) { int temp = *x; *x = *y; *y = temp; }//main函數裡寫 swap2(&a,&b) *x和*y為形參,a和b為實參
這裡不同於值傳遞的是,傳入實參的時候加上了&符號。因為函數傳參規定對應的資料型別需要一致,所以不難理解*x=&a,*y=&b
。
範例:int a=10; int &b=a; cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;
上面兩個輸出結果都是10 其實參照就是給變數起個別名,就比如你小名張三,長大了叫張大仙,當你張三18歲了,那麼張大仙也18歲,無論改變a還是b,他們兩個的結果都一樣
程式碼如下:
void swap3(int &x,int &y) { int temp = x; x = y; y = temp; }//main 裡寫 swap3(a,b) &x,&y為形參 a,b為實參
這裡跟我上面提到的一致,就是 &x=a a的別名為x; 那麼x和y的改變就會影響a和b的值,從而完成交換資料的任務
值傳遞形參不能修飾實參:第一種值傳遞後主函數a,b的值並沒有發生改變,因為如果傳的只是變數的值,那麼編譯器會拷貝一個副本,只是把a,b的值賦給了x和y,很顯然這種方式的a和x的地址不相同,就比如現在有一個香蕉,我利用克隆技術複製了一個一模一樣的出來,我把克隆的吃了,那原來的肯定還在,並不影響原來的香蕉。
地址傳遞的形參可以修飾實參,利用指標和參照方法,傳遞的都是變數的地址,所以形參的改變會引起實參的變化。
以上就是我分享給大家的三種函數值傳遞方式,我個人推薦多使用參照傳遞,相比於值傳遞他不會產生副本,節省空間,相比於指標他的形式更簡單,效果卻一樣,如果有錯誤或者有更好的見解一定私信我,共同進步哦
到此這篇關於超詳細講解C++的三種函數傳遞方式的文章就介紹到這了,更多相關C++函數傳遞內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45