程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++ 中const和復合類型

C++ 中const和復合類型

編輯:關於C++

C++ 中const和復合類型。本站提示廣大學習愛好者:(C++ 中const和復合類型)文章只能為提供參考,不一定能成為您想要的結果。以下是C++ 中const和復合類型正文


1.const和援用

可以把援用綁定在常量上,稱之為,對常量的援用。不克不及對誰人援用賦值。

如:

const int ci = 1024;
const int &ri = ci;

解讀:ri是對ci的援用。ri的const意思是視ci為變量。

關於常量,只能應用“對常量的援用”這個援用方法 int &ri = ci;是毛病的,由於ci不克不及賦值,然則能夠會對ri賦值從而影響const限制。

所以,他們(制訂尺度的人)發明了 對常量的援用 的 援用方法。

上面高能!!!
下面說:

視ci為變量

為何?

2.對常量的援用方法援用變量

int i =2048;
const &ri = i;

解讀:ri 把 i 視為變量,然後援用它

後果:不克不及對ri賦值,然則可以對i賦值。這裡i是變量。

所以:“對常量的援用” 是一種援用|方法|! 關於真實的常量,必需應用這類方法,關於變量,這類方法使代碼不得經由過程援用來賦值。

這麼想:你想開放一個對象,他人只能讀取,但你可以修正這個對象的值。

int i;  //你的對象
const int &ri = i;  //把這個傳出去

對常量援用可以綁定:常量,變量。。。字面值,表達式!!!

int i = 5;
const int &ri1 = i; //const int& 綁定到 int 變量
const int &ri2 = 9; //准確:對常量援用可以
const int &ri3 = r1 * 2; //准確:橫豎ri是對常量的援用
int &r4 = r1 * 2; //毛病:通俗援用就認命吧

r3綁定的是其時對這個表達式的求值得成果,是一個暫時量。

援用和const的那些事就完了。

惡夢,復合類型還有一個,指針

3.指針和const

好新聞:指針和援用差不多。

因而:

指向常量的指針

const int i = 2;
const int *pci = &i;

很像吧,一樣,關於常量,必需應用指向常量的指針。

如今指向變量:

int ii = 2;
const int *pci = ⅈ

異樣,解援用pci後不克不及賦值,然則可以直接對ii賦值。

年夜菜來了!!!

4.const指針

溫習:指針是對象,而援用不是。

const指針 就是說:指針對象自己是常量,許可把指針自己界說為對象。

後果:const指針不克不及更改指向對象的地址。

人話:1.必需初始化2.只能指向一處。

把*放在const症結字的後面,就解釋指針自己是常量。

int i = 0; //管你的想指變量照樣常量
int *const cpi = &i; //將一向指向 i ;

年夜招:

指向常量的指針 和 常量指針是離開的.

const int *const cpci = &i;

剖析:指向常量的常量指針。

性質:1.必需初始化(來自常量指針的屬性)

   2.指向是不會再變了(來自常量指針的屬性)

   3.既可以指常量,也能夠指變量(來自指向常量的指針的屬性)

5.擺脫

下面的界說太繞口了。好爽,這就是為何C++難了。

界說:

拿指針做示例

頂層const:表現指針自己是常量

底層const:表現指針指向的對象是常量(或許看做是常量)

推理:

1.援用沒有頂層const,援用不是對象,只是綁定。

2.簡略根本類型的常量都是頂層的。

3.指針可以既是頂層const又是底層const

坑:不要疏忽底層const

int i;
const int *pc = &i;
int * p = pc; //毛病,pc具有底層const

底層const應用示例:只讀器

int i;
const int *ci = &i; //把這個傳出去,只讀的呦。

關於界說怎樣懂得,小我意見:

const int                        |    *const p;

指向對象的根本數據類型|    聲明符

表現指向常量                 | 表現指針自己是常量

底層const                      | 頂層const

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved