亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++入門 引用詳解

2019-11-11 07:54:04
字體:
來源:轉載
供稿:網友

//1.引用作為其他變量的別名而存在,因此在一些場合可以代替指針

//2.引用相對于指針來說具有更好的可讀性和實用性

//3.引用在C++內部實現就是一個常量指針 *const p //int &a == int *const a  

 

#include "stdafx.h"

#include<iostream>

#include"string"

using namespace std;

 

class Teacher

{

public:

int  age;

string name;

};

 

void GetAgeA(Teacher *PT)

{

cout << PT->age<< "  ";

PT->age = 25;

}

//引用就不一樣了,引用時將PT和下邊的t1綁定在了一起,PT相當于t1的別名,他們都指向同一塊內存

void GetAgeB(Teacher &PT)

{

cout << PT.age<< "  ";

PT.age = 25;//所以改了PT就改了t1,這屬于C++的一個加強

}

void GetAgeC(Teacher PT)//PT是實參,和下邊的t1沒有直接的內存關系,只是t1 復制了一份數據給了PT

{

PT.age = 25;//因為先改了PT 所以運行結果是25

cout << PT.age<< "  ";

//如果在這里改了PT的age 就只改變了PT的age對t1沒有任何影響

}

 

//這樣的函數是不能實現交換的

void MySwap(int a,int b)

{//這樣只是進行了a和b的值的交換而對下邊的x和y的值卻沒有影響

int c = 0;

c = a;

a = b;

b = c;

}

//如果要實現交換就要用到指針

void MySwap2(int *a,int *b)

{

int c = 0;

c = *a;

*a = *b;

*b = c;

}

//使用引用

void MySwap3(int &a,int &b)

{

int c = 0;

c = a;

a = b;

b = c;

}

 

int GetA1()

{

int a = 10;

a++;

return a;

}

//返回值為引用的函數,就是返回a的副本,有內存地址也有值

//因為返回的是a的副本,相當于一個變量所以也可以當左值,但是必須是靜態變量或者是全局變量,不會被析構,才可以。

int& GetA2()

{

int a = 10;

a++;

return a;

}

//返回值當左值的測試,變量a為靜態

int& GetA3()

{

static int a = 10;

a++;

cout << "GetA3中的a: " << a<< endl;

return a;

}

 

int main()

{

int a = 5;

int &b = a;//這是一個普通的引用,當使用時必須初始化,b就為a的一個別名,很像一個常量定義

//引用Win32平臺下占用4個字節,和指針的占用空間一樣

cout << b << endl;//輸出的結果為5

cout << &b << endl;

cout << &a << endl;//地址是一樣的,這就說明a和b都是同一塊內存地址的別名,就是門牌號

 

Teacher t1;

t1.age = 20;

GetAgeC(t1);//使用三種方法調用,這里先使用第三種,目的是看結果,因為第三種方法不改變t1的值,運行后的結果一目了然//25   20

cout << t1.age << endl;

GetAgeA(&t1);//使用一種方法調用//20  25

cout << t1.age << endl;

GetAgeB(t1);//使用二種方法調用,因為是別名,所以不需要任何符號//25   25

cout << t1.age << endl;

int x = 10;

int y = 20;

MySwap(x, y);//是第一個交換的方法,沒有效果

cout << "x: " << x<< "   " << "y: " << y<< endl;

MySwap2(&x, &y);

cout << "x: " << x<< "   " << "y: " << y<< endl;

MySwap3(x, y);//利用引用,可以使代碼簡單,也可以實現

cout << "x: " << x<< "   " << "y: " << y<< endl;

 

int x1;

int y1;

x1 = GetA1();

y1 = GetA2();//如果用int值的變量來接這個函數C++會把a的值賦給y1

int &z = GetA2();//定義一個引用來接這個函數嗎,也就是來接a的本身,就是那串內存地址,相當于接了個指針

cout << "x1: " << x1<< "y1: " << y1<< endl;

cout << "&z: " << z<< endl;//z之所以是亂碼是因為GetA2返回的是引用,相當于返回的是一個內存地址,打印z就是取*z,也就是取得這個內存地址中的值10,由于a這個變量在GetA2函數結束時就被析構掉了,所以沒有值了,所以為亂碼

 

GetA3() = 100;//可以編譯成功說明沒有問題,將100賦值給GetA3,也就是將變量a變成了100

cout << GetA3() << endl;//這里又調用了一次所以為101

 

return 0;

}

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品pans私拍| 欧美电影《睫毛膏》| 日韩中文字幕免费看| 欧美性一区二区三区| 91在线观看免费观看| 精品久久久久久国产| 国产精品白嫩初高中害羞小美女| 久热99视频在线观看| 成人精品视频99在线观看免费| 日韩视频精品在线| 亚洲人午夜精品| 国产免费一区视频观看免费| 国产成人精品视频在线观看| 国产精品亚洲综合天堂夜夜| 91香蕉嫩草神马影院在线观看| 国产精品午夜国产小视频| 国产精品久久久久久久久久久久久久| 中文字幕精品影院| 日韩中文字幕在线看| 性欧美xxxx| 欧美激情女人20p| 国产精品美女免费视频| 欧美午夜无遮挡| 亚洲天堂影视av| 57pao国产成人免费| 色哟哟亚洲精品一区二区| 成人激情视频在线| 国产成人aa精品一区在线播放| 欧美性xxxx极品hd欧美风情| 国产精品久久999| 亚洲一区二区中文字幕| 久久99久久99精品免观看粉嫩| 国产精品嫩草影院一区二区| 91成人天堂久久成人| 欧美黑人又粗大| 伊人伊成久久人综合网站| 亚洲第一国产精品| 国产一区私人高清影院| 久久精品一区中文字幕| 欧美一区二区三区精品电影| 在线播放国产一区中文字幕剧情欧美| 欧洲午夜精品久久久| 日韩激情视频在线播放| 欧美第一黄网免费网站| 国产精品久久久久久五月尺| 色婷婷亚洲mv天堂mv在影片| 欧美日韩国产成人在线| 中文字幕av日韩| 欧美日韩午夜剧场| 欧美性猛交xxxx富婆弯腰| 欧美激情一区二区三区高清视频| 日韩精品视频在线| 日韩精品欧美激情| 一区二区三区 在线观看视| 国产69久久精品成人| 国产精品最新在线观看| 欧亚精品中文字幕| 国产精品久久久久久搜索| 51精品国产黑色丝袜高跟鞋| 色噜噜狠狠狠综合曰曰曰| 国产精品主播视频| 26uuu另类亚洲欧美日本老年| 日韩在线精品一区| 欧美国产一区二区三区| 欧美成人中文字幕在线| 亚洲欧美日韩精品久久奇米色影视| 久久久欧美精品| 欧美与黑人午夜性猛交久久久| 欧美成人精品在线视频| 在线观看国产精品91| 在线观看日韩www视频免费| 日本成人激情视频| 亚洲欧美色婷婷| 96sao精品视频在线观看| 欧美视频免费在线| 亚洲日韩中文字幕在线播放| 欧美成人午夜免费视在线看片| xvideos国产精品| 欧美在线视频观看| 91精品久久久久久| 黄色一区二区在线观看| 亚洲欧洲av一区二区| 国产精品爽爽ⅴa在线观看| 国产精品综合不卡av| 国内精品久久久久久影视8| 中文字幕综合一区| 日韩在线视频观看| 福利一区福利二区微拍刺激| 国产精品欧美日韩久久| 97超级碰碰人国产在线观看| 91精品国产91久久久久久不卡| 亚洲美女喷白浆| 国产ts一区二区| 欧美另类交人妖| 亚洲激情在线观看| 日韩在线国产精品| 久久人体大胆视频| 日韩在线免费观看视频| 亚洲精品99久久久久中文字幕| 日韩欧美国产网站| 国产伊人精品在线| 亚洲欧美日韩一区二区三区在线| 精品久久久久久亚洲精品| 亚洲成色777777女色窝| 亚洲欧美在线x视频| 国产精品嫩草视频| 亚洲欧美日韩中文视频| 日韩精品视频免费| 中文字幕视频一区二区在线有码| 国内外成人免费激情在线视频| 国产美女扒开尿口久久久| 国产日产亚洲精品| 亚洲人成电影在线播放| 国产精品视频一区二区高潮| 久久久精品999| 日韩中文字幕亚洲| 高清欧美性猛交xxxx黑人猛交| 欧美精品久久久久久久免费观看| 色噜噜狠狠色综合网图区| 国产成人精品免费视频| 日韩中文字幕精品视频| 91在线观看免费高清完整版在线观看| 国产精品免费一区豆花| 日韩在线中文视频| 久久亚洲国产精品| 国产在线视频不卡| 精品国内产的精品视频在线观看| 精品国产一区二区三区久久狼5月| 亚洲裸体xxxx| 高清日韩电视剧大全免费播放在线观看| 成人高清视频观看www| 亚洲精品之草原avav久久| 久久精品成人欧美大片| www.久久久久久.com| 69av视频在线播放| 精品美女永久免费视频| 亚洲欧美精品一区| 亚洲韩国欧洲国产日产av| 97国产真实伦对白精彩视频8| 大伊人狠狠躁夜夜躁av一区| 欧美性猛交xxxxx免费看| 538国产精品一区二区免费视频| 国产成人精品日本亚洲| 欧美激情第三页| 亚洲欧美日韩在线一区| 亚洲专区中文字幕| 青草成人免费视频| 日韩国产高清视频在线| 日本欧美国产在线| 精品福利樱桃av导航| 4k岛国日韩精品**专区| 色噜噜久久综合伊人一本| 成人夜晚看av| 中文字幕日韩精品在线观看| 亚洲最新av在线| 在线一区二区日韩| 大伊人狠狠躁夜夜躁av一区| 国产福利视频一区二区| 国产999精品久久久| 欧美极品少妇全裸体| 国产精品高潮呻吟久久av黑人| 91久久久久久久久| 成人欧美一区二区三区在线湿哒哒| 欧美高清视频在线|