C++中,引用作为函数参数
生活随笔
收集整理的這篇文章主要介紹了
C++中,引用作为函数参数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
引用作為函數(shù)參數(shù)
C++之所以增加引用類型, 主要是把它作為函數(shù)參數(shù),以擴(kuò)
充函數(shù)傳遞數(shù)據(jù)的功能。
————————————————————
c++,函數(shù)傳參:
(1)將變量名作為實參和形參。這時傳給形參的是變量的值,
傳遞是單向的。如果在執(zhí)行函數(shù)期間形參的值發(fā)生變
化,并不傳回給實參。因為在調(diào)用函數(shù)時,形參和實參
不是同一個存儲單元。//同c
(2) 傳遞變量的指針。形參是指針變量,實參是一個變量的
地址,調(diào)用函數(shù)時,形參(指針變量)指向?qū)崊⒆兞繂卧?br />這種通過形參指針可以改變實參的值。//同c
(3) C++提供了 傳遞變量的引用。形參是引用變量,和實參是
一個變量,調(diào)用函數(shù)時,形參(引用變量)指向?qū)崊⒆兞?/strong>
單元。這種通過形參引用可以改變實參的值。
?
#include <iostream> using namespace std; void funcr(int &num , int x) {cout<<"in funcr,addr is:"<<&num<<endl;//對比地址,等于原地址num = x ;//會改變傳入?yún)?shù)的值。 }void func(int num , int x)//不能寫成void funcr(int num , int x),不正確的重載,導(dǎo)致不知道該調(diào)用誰。 {cout<<"in func,addr is:"<<&num<<endl;//對比地址,有所變化num = x ;//只會在函數(shù)內(nèi)改變拷貝變量的值,不會改變傳入的參數(shù)值 } int main() {int x = 100;int &rx = x ;cout<<"addr_x:"<<&x<<endl;cout<<"addr_rx:"<<&rx<<endl;//變量地址和它的引用地址相同 funcr(x,177);//改變傳入?yún)?shù)的值,不管代碼中傳的是變量本身還是引用 cout<<"after funcr , x="<<x<<endl;funcr(rx,211); //改變傳入?yún)?shù)的值 cout<<"after funcr , rx="<<x<<endl;func (rx,233); //不會改變傳入?yún)?shù)的值,不管代碼中傳的是變量本身還是引用 cout<<"after func , rx="<<x<<endl;while(1);return 0 ; } //測試結(jié)果: addr_x:0xbf82293c addr_rx:0xbf82293c in funcr,addr is:0xbf82293c after funcr , x=177 in funcr,addr is:0xbf82293c after funcr , rx=211 in func,addr is:0xbf822920 after func , rx=211?
轉(zhuǎn)載于:https://www.cnblogs.com/mylinux/p/4091583.html
總結(jié)
以上是生活随笔為你收集整理的C++中,引用作为函数参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [c++基本语法]——构造函数初始化列表
- 下一篇: s3c2440移植MQTT