成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++基礎學習之引用和指針

開發 后端
本文介紹的是C++的基礎知識,也是精華知識,就是引用和指針。希望對大家有幫助,一起來看。

引用指針C++程序語言中相當重要的概念,對于初學者來說,也許會比較難懂。下面詳細介紹指針和引用。

引用和指針有如下三種區別:

1 引用必須在聲明時初始化,而指針不用;

2 對于NULL不能引用,而指針可以指向NULL;

3 引用一旦聲明,引用的對象不能改變(但對象的值可以改變);而指針可以隨時改變指向的對象。

引用能做到的,指針也可以,但指針更危險;

(1)引用被創建的同時必須被初始化(指針則可以在任何時候被初始化)。

(2)不能有NULL引用,引用必須與合法的存儲單元關聯(指針則可以是NULL)。

(3)一旦引用被初始化,就不能改變引用的關系(指針則可以隨時改變所指的對象)。

從上面的區別看,引用比指針安全。從編譯器的角度看,引用僅僅是一個更為安全的指針。正是因為指針非常靈活,導致指針在編程時出錯的可能性也很大,可以這樣說指針是C++中最危險的。為了在不犧牲性能的情況下,更安全的利用指針特性,C++引入了引用。

從上面的區別可看出,兩者的區別全部表現為對指針的一個靈活特性進行限制,如初始化、合法地址、重新賦值的限制。

下面逐條給予更多的解釋:

1)為確保引用對象的有效性。

引用變量聲明是必須初始化,卻語言盡可能限制引用變量的有效性。但是注意:語言僅是盡可能保證,并不能完全保證引用時刻有效。因為編譯器做不到這點。

如:

a)引用對象被無意析構;常表現為返回臨時變量的引用;引用變量的生存期比引用變量短;

b)用于初始化引用變量的變量并未被構造,這主要是因為使用指針初始化引用變量導致,

如:

  1. int* p=NULL;   
  2. int& temp = *p;  

 

上面的語句是有效的,但是引用變量是無效的。

上面的解釋說明了,引用雖然是安全的指針,但是并非絕對安全。引用使用不當,同樣是致命的。根據C++標準,無效引用將產生“不確定行為”。可能是出于性能方面的考慮,標準并未提供判斷引用時候有效的辦法(據通過假定引用變量時刻有效,減少判斷有效性的性能損失)。

2)引用變量的值不能改變。

這個假定同樣是為減少指針的誤用。也就是說使用引用變量時不必擔心出現同一個引用變量前后所指向的實際對象發生改變的可能。

那什么時候使用引用呢?

理論上,除下面兩種情況外,都可以使用引用來替代指針(引用更安全)

一是你考慮到存在不指向任何對象的可能,在這種情況下,你能夠設置指針為空;

二是你需要能夠在不同的時刻指向不同的對象,在這種情況下,你能改變指針的指向。

***給大家一個例子,幫助理解一下。

  1. class Time//定義一個類Time  
  2. {  
  3. public//數據成員是公有的  
  4. int hour;  
  5. int minute;  
  6. }  
  7. Time t,*p;//定義一個類的對象t,和 Time類的指針變量p  
  8. p=&t;//指針指向對象t,&稱引用,也指指針p指向了t的地址  
  9. cout<<p->hour;//輸出指針指向的對象hour 

 

希望通過以上內容的介紹,能夠給你帶來幫助。

責任編輯:于鐵 來源: 互聯網
相關推薦

2011-07-15 01:38:56

C++this指針

2021-06-10 08:51:57

C++指針聲明指針相關概念

2023-11-22 13:22:51

C++函數

2011-07-14 23:27:05

C++引用

2011-07-14 17:17:21

C++指針

2011-07-14 17:02:09

C++指針

2010-01-28 13:57:19

C++指針基礎

2021-07-28 06:53:02

C++Const指針傳遞

2011-07-15 00:47:13

C++多態

2015-05-13 10:37:58

C++指針與引用

2014-01-24 09:49:01

C++指針

2024-05-15 16:01:04

C++編程開發

2011-07-13 18:24:18

C++

2011-07-14 17:45:06

CC++

2020-07-30 12:40:35

CC++編程語言

2024-02-22 14:06:39

C++指針開發

2021-12-21 15:31:10

C++語言指針

2010-01-18 15:53:27

C++析構函數

2010-01-26 13:42:28

C++指針

2011-04-11 11:09:50

this指針
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人av一区 | 国产福利网站 | 欧美一级大黄 | 欧美一区二区三区在线观看视频 | 国产一区二区三区免费观看视频 | 精品视频一区二区三区在线观看 | 最新国产在线 | 国产激情一区二区三区 | 国产中文区二幕区2012 | 日韩一区二区三区精品 | 精品国产91乱码一区二区三区 | 一区二区三区四区在线视频 | 成人av高清 | 日本午夜精品 | 亚洲成人精品 | 亚洲欧美一区二区三区1000 | 精品久久国产 | 精品久久久久一区二区国产 | 日韩久久久久久 | 欧美黄 片免费观看 | 亚洲国产精品精华素 | 日本大香伊一区二区三区 | 成人午夜av | 精品亚洲一区二区三区 | 国产欧美精品区一区二区三区 | 国产精品色婷婷久久58 | 91精品国产91久久久久久 | 亚洲欧美一区二区三区国产精品 | 一级做a毛片 | 福利社午夜影院 | 精品中文字幕在线 | 久久久国产精品网站 | 成人一区二区三区在线 | 日韩欧美精品 | 操久久 | 国产精品久久久久久久久久久久冷 | 天天操天天操 | 日韩av一区二区在线观看 | 不卡av电影在线播放 | 国产精品精品久久久 | 久久亚洲一区 |