国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

詳解C++中的const的使用介紹

2020-02-24 14:27:06
字體:
來源:轉載
供稿:網友

const是C++中常用的類型修飾符,公共類型引用類型修飾符const指定的類型,下面武林技術頻道小編為大家帶來詳解C++中的const的使用介紹,希望對你學習這方面知識有所幫助。

?C++中的const的使用詳解

const在c/c++中還是會經常出現的,并且如果不理解const會在編程出現的錯誤而不知所措,無法理解。下面從幾個角度簡要理解const的內容,應該還是蠻有用的。

const與指針類型

const int*p = NULL; 和int const*p = NULL;是等價的。因為const都在“ * ”的前面,其實是以*為標志的。

1. int x = 3; const int *p = &x; // p = &y;正確 , //*p = 4;錯誤 

指針其實一般是4個字節長度。p的內容是存儲0x….,就是其他數據的地址。因此這里的const修飾*p就是說:*p的內容是不可直接被賦值改變的。

而p本身存儲的地址是可變的,可以變成其他的0x…..當p指向其他的數據地址時,*p也就隨之變成新的數據。

int x = 3; int *const p = &x; //p = &y是錯誤的

總結:其實是看這個const是在的前面還是后面,如果在的前面,則表示修飾的是整個“ p ”,而在后面,則表示修飾的是只有p。

顯然有:在前面,則表示整個*p是const的,因此p可以指向其他的地址,而*p則是const的,無法改變。同理,int *const p = &x;則表示指針p是固定的,就是說p指針存儲的地址是固定的,其內容是const,因此無法修改為其他值(即指向其他地址)。

const與引用

int x = 3; const int &y = x; //x = 10;正確 //y = 20; 錯誤 

引用前面有const,所以不能通過y來修改x的值。

本人的理解:const int &y就是相當于const int *y1 = &x;然后y = 20就相當于*y1 = 20;這顯然時不允許的(就如前面所說的,*p時const,無法直接賦值給*p)。因為引用就相當于給x取了一個別名y,此時y不就是y1指針所指的內容嗎?也就是說上面的例子:y = 20;就是相當于 *y1 = 20.

錯誤的const使用

其他:const int x = 3; int *y = &x; 不能通過編譯。因為可能通過*p修改本應該是const的x;
int x = 3; const int *y = &x; 這是可以的,這里的x是可變的,通過由于*y是const的,因此*y就是只能是讀取x的值,而不具有寫入x的權利。

總結:可以說是只能把一個東西權限縮小,而不能使其原始的權限增大。

const在函數中的應用

主要是防止函數的誤操作,對值進行更改

void fun(const int&a, const int&b) { //這里就不能對a或b進行更改,否則會編譯出錯 }

以上文章就是詳解C++中的const的使用介紹,希望對大家有所幫助,切記要了解透徹,確保安全后再進行相關操作,更多知識盡在武林技術頻道,歡迎大家查閱。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 介休市| 文安县| 黑河市| 应用必备| 内丘县| 招远市| 松潘县| 临沂市| 凤冈县| 都江堰市| 巴马| 阜平县| 边坝县| 平乐县| 东乡县| 外汇| 辉县市| 木里| 桂东县| 桐城市| 邹城市| 喀喇| 哈尔滨市| 大田县| 安庆市| 石家庄市| 琼中| 桂林市| 梧州市| 东乌| 宜君县| 马边| 绥宁县| 镇赉县| 阳泉市| 无为县| 峡江县| 芦溪县| 马鞍山市| 西乌珠穆沁旗| 全南县|