在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子教材>《數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言 》電子教案免費(fèi)下載

《數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言 》電子教案免費(fèi)下載

2010-03-01 | rar | 7744 | 次下載 | 免費(fèi)

資料介紹

《數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言電子教案免費(fèi)下載

轉(zhuǎn)變二、????????????? 聲明位置的轉(zhuǎn)變

?? C語(yǔ)言里,變量聲明必須放在一個(gè)函數(shù)的開(kāi)頭,但在C++里,卻不需要這么做,你可以在任何地方聲明一個(gè)變量。而且,建議你盡量等需要用的時(shí)候再去定義一個(gè)變量。

轉(zhuǎn)變?nèi)????????????? 引用類(lèi)型的引入

先來(lái)看下面一個(gè)例子:

#include

void swap(int a,int b)

{

???? int temp=a;

???? a=b;

???? b=temp;

}

int main()

{

???? int a=1,b=2;

???? swap(a,b);

???? printf("a=%d,b=%d",a,b);

}

輸出結(jié)果:

a=1,b=2

寫(xiě)出這個(gè)程序的人,它編寫(xiě)的swap函數(shù)本意是想讓兩個(gè)參數(shù)的值互相交換。但是,我們知道,C語(yǔ)言里參數(shù)的傳遞都是以值傳遞的方式進(jìn)行的,也就是說(shuō),這里將把作為實(shí)參的a,b的值賦值給作為形參的a,b,這樣形參與實(shí)參并不是同一片內(nèi)存空間,對(duì)形參a所做的賦值操作根本不會(huì)對(duì)實(shí)參a有任何的影響,所以最終會(huì)發(fā)現(xiàn)這個(gè)swap函數(shù)根本沒(méi)有起到任何作用。

作為C語(yǔ)言高手的你會(huì)告訴我,想實(shí)現(xiàn)兩個(gè)數(shù)交換,應(yīng)該這么寫(xiě):

#include

void swap(int *a,int *b)

{

???? int temp=*a;

???? *a=*b;

???? *b=temp;

}

int main()

{

???? int a=1,b=2;

???? swap(&a,&b);

???? printf("a=%d,b=%d",a,b);

}

確實(shí),這個(gè)程序能達(dá)到交換兩個(gè)值的效果,可是,我們要操作的是兩個(gè)變量的值,而不是其地址,卻需要往函數(shù)里傳遞兩個(gè)變量的地址。總是讓人感到不太直觀。

C++里就出現(xiàn)了引用類(lèi)型。

這樣,原程序就可以這么寫(xiě)

#include

void swap(int &a,int &b)???????? //只有這一行與原來(lái)的程序不同

{

???? int temp=a;

???? a=b;

???? b=temp;

}

int main()

{

???? int a=1,b=2;

???? swap(a,b);

???? printf("a=%d,b=%d",a,b);

}

這樣,這個(gè)swap函數(shù)就對(duì)它的兩個(gè)參數(shù)a,b的值進(jìn)行了交換。


你可能會(huì)驚奇的問(wèn):什么?竟然在形參聲明時(shí)對(duì)a取地址?

咱們先撇開(kāi)上面的例子來(lái)說(shuō)一下引用類(lèi)型變量:

1.?????? 引用類(lèi)型相當(dāng)于給變量起了一個(gè)別名

變量名就是一個(gè)用以標(biāo)識(shí)一片內(nèi)存區(qū)域的標(biāo)識(shí)符,而聲明引用變量就相當(dāng)于給這片內(nèi)存區(qū)域重新起了一個(gè)名字。這句話(huà)你現(xiàn)在看肯定不太清楚它是什么意思,但,請(qǐng)帶著這句話(huà)看下面的幾點(diǎn)


2.?????? 引用類(lèi)型變量的初始化

定義一個(gè)引用類(lèi)型的變量時(shí),這個(gè)&僅僅是用來(lái)表示聲明的變量是是引用類(lèi)型變量(而并非取地址的意思)。如

int a=123;

int &b=a;??????

b就是一個(gè)引用類(lèi)型變量,它綁定在一個(gè)int類(lèi)型的變量a上。如果現(xiàn)在輸出b的值,就會(huì)得到b的值為123.

我們定義一個(gè)引用類(lèi)型的變量時(shí),必須用它所綁定的類(lèi)型的一個(gè)變量對(duì)它進(jìn)行初始化。

int a=123;

int &b1=a;????? //正確

int &b2;??????? //錯(cuò)誤,必須初始化

int &b3=123;??? //錯(cuò)誤,必須用int型變量來(lái)進(jìn)行初始化,而不能用常量來(lái)初始化。


3.?????? 對(duì)引用類(lèi)型變量進(jìn)行賦值

先來(lái)看下面一段代碼。

int a=123,b=234;

int &c=a;

c=b;

這時(shí),a和c的值是多少?

有兩種想法,第一種想法是c=b的意思和初始化時(shí)c=a那里差不多,表示讓c從現(xiàn)在起開(kāi)始綁定到b.所以a的值是123,c的值是234,這種想法很有依據(jù),那就是指針變量就是這個(gè)樣子,不過(guò)我可以很負(fù)責(zé)任的告訴你,這種想法在這里是錯(cuò)誤的,至少,編譯器和你的想法不一樣。事實(shí)上,除了初始化的時(shí)候之外,你對(duì)一個(gè)引用類(lèi)型的變量進(jìn)行任何的操作,都相當(dāng)于對(duì)它所綁定的變量進(jìn)行了相同的操作,這個(gè)“任何”是包括賦值操作的。所以,這里c=b就相當(dāng)于是a=b,執(zhí)行了該操作后,a,c的值都變?yōu)?34。


好,現(xiàn)在我們?cè)賮?lái)回頭看一下前面那個(gè)程序,為了區(qū)別形參a,b和實(shí)參a,b,這里我把實(shí)參a,b記作a',b'.

形參列表里的int &a,int &b就相當(dāng)于int &a'=a,int &'b=b

這樣,a'綁定到了a上,成了a的另一個(gè)名字,b'就成了b的另一個(gè)名字,因此,對(duì)a',b'做的任何操作,都相當(dāng)于對(duì)a,b進(jìn)行了對(duì)應(yīng)操作,這也就使形參與實(shí)參共用了同一片內(nèi)存地址,便可以實(shí)現(xiàn)在函數(shù)中改變實(shí)參的值了。

這樣,swap函數(shù)才真正直到了交換兩個(gè)參數(shù)的值的作用。

4.?????? const引用

const引用就是綁定在const對(duì)象上的引用。

如 const int data=123;

const int& data2=data;????? //正確

int &data3=data;??????????????? //錯(cuò)誤

//不能將int&型變量綁定在const int型變量上

但,可以用const int&變量綁定在int型變量上。如:

int data=123;

const int &data2=data;????? //正確

此后,可以利用給data賦值來(lái)給這片內(nèi)存區(qū)域賦值,但卻不能給data2賦值,因?yàn)閐ata2是const int&型。


由于引用類(lèi)型作為參數(shù)時(shí),不是真正的值傳遞,形參與實(shí)參共用同一片內(nèi)存區(qū)域,所以在用一些大的結(jié)構(gòu)體對(duì)象或大的類(lèi)對(duì)象(類(lèi)是一種與結(jié)構(gòu)體類(lèi)似,但比結(jié)構(gòu)體強(qiáng)大得多的東西,本書(shū)后面大部分內(nèi)容都是在講它)作參數(shù)時(shí),可以把函數(shù)的形參聲明為引用類(lèi)型,以減小值傳遞所帶來(lái)的開(kāi)銷(xiāo)。而且,在多數(shù)情況下,為了避免做為實(shí)參的對(duì)象在函數(shù)內(nèi)不被修改,可以把形參設(shè)置為const引用。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
  2. 0.03 MB   |  9次下載  |  10 積分
  3. 2i.MX Linux開(kāi)發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開(kāi)發(fā)板
  4. 17.86 MB   |  6次下載  |  免費(fèi)
  5. 3I2C噪聲毛刺濾波
  6. 52.3KB   |  5次下載  |  免費(fèi)
  7. 4OV426相機(jī)橋接處理器規(guī)格書(shū)
  8. 1.63 MB   |  4次下載  |  5 積分
  9. 5新概念模擬電路(電子版全集)
  10. 29.33 MB   |  3次下載  |  免費(fèi)
  11. 6Type-C VL160數(shù)據(jù)手冊(cè)
  12. 0.92 MB   |  3次下載  |  3 積分
  13. 7VC 9805A+電路圖和PCB圖(修改版)
  14. 1.19 MB   |  1次下載  |  免費(fèi)
  15. 8電流電壓傳感器V10
  16. 8.02 MB  |  1次下載  |  免費(fèi)

本月

  1. 1ACDC變換器的原理圖免費(fèi)下載
  2. 0.26 MB   |  65次下載  |  免費(fèi)
  3. 2無(wú)刷電機(jī)控制方案設(shè)計(jì)合作
  4. 1.05 MB   |  19次下載  |  免費(fèi)
  5. 3美的超薄電磁爐TM-S1-09B主板原理圖
  6. 0.08 MB   |  12次下載  |  免費(fèi)
  7. 4GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
  8. 0.03 MB   |  9次下載  |  10 積分
  9. 5舒爾SLX4無(wú)線話(huà)筒接收機(jī)原理圖:二次變頻超外差部分
  10. 0.27 MB   |  8次下載  |  免費(fèi)
  11. 6TPS55288布局指南
  12. 1.75MB   |  7次下載  |  免費(fèi)
  13. 7i.MX Linux開(kāi)發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開(kāi)發(fā)板
  14. 17.86 MB   |  6次下載  |  免費(fèi)
  15. 8I2C噪聲毛刺濾波
  16. 52.3KB   |  5次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935115次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191363次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81580次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73805次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分
主站蜘蛛池模板: 一级特黄aaa大片| 人人莫| 国产网红主播chinese| 黄色小视频日本| 国产毛片久久久久久国产毛片| 国产色视频在线| 一级特黄a免费大片| 搜索黄色录像| 国产精品a在线观看香蕉| 51国产| 色香欲亚洲天天综合网| 狠狠色婷婷七月色综合| 亚洲精品卡1卡二卡3卡四卡| 午夜免费福利片| 人人爽人人看| 国产三级在线观看| 午夜精品久久久久久99热| 久久99精品福利久久久| 欧美精品xxxⅹ欧美| 美女张开腿露出尿口让男人桶| 在线欧美国产| 日本免费性| 国内自拍 亚洲系列 欧美系列 | 性国产精品| 亚洲色图欧美在线| 9久久精品| 婷婷操| 操黄色| 韩国美女丝袜一区二区| 天堂网最新版www| 久视频在线观看久视频| 97久久综合九色综合| 久久久午夜精品| 22eee在线播放成人免费视频| 在线成人| 老色批影院| 天天看天天碰| 丁香激情五月| 午夜片 飘香香影院| 国产又黄又免费aaaa视频| 人人爱干|