C++中的const關鍵詞用法
在C語言和C++中,有一個用來修飾所有變數的關鍵詞const,表示將此變數變成常量的意思。比如,對int型變數加上一個const,那麼該變數就是一個常量了,也即該變數無法再發生改變了。例如下面的程式碼片段:
cont int i = 5;
i = 8; //此處會產生編譯錯誤,因為i被const修飾,因此i的值不能再改變
同樣地,const除了可以修飾基本型別資料外,還可以用來修飾指標和引用,但修飾指標的時候會有常量指標和指標常量之分:
- 常量指標:const關鍵詞是左結合的關鍵詞,若左邊為空則為右結合,也即從左往右讀。例如以下程式碼片段:
const int* p;
此處是一個常量指標,從左往右讀,先是常量再是指標。對於對於常量指標,顧名思義,這是一個指標,但指向的是一個常量。也即一旦指向了某個變數,則不能通過指標改變該變數的值,因為該變數被指定為了常量。例如以下程式碼片段:
const int* p;
int i = 8;
p = &i; //常量指標指向變數i,相當於把i視為了常量
*p = 5; //產生編譯錯誤,因為常量的值無法通過指標改變。
int j = 40;
p = &j; //合法,此處改變的是指標,即將指標更換一個指向的變數,由原來的指向i改為指向j
- 指標常量:相對於常量指標,這裡是一個指標常量,也即,本身是一個常量,但該常量是一個指標,這表示該指標一旦指向了某個變數就不能再指向其他變數,因為這是一個常量,例如以下程式碼片段:
int* const p;
int i = 8;
p = &i; //此處指標常量指向i
*p = 5; //合法,此處的p是常量,而非指向的i是常量
int j = 40;
p = &j; //此處產生編譯錯誤,因為p是一個常量,前面已經指向了i,此處則不能再指向j
- 常量指標常量,這表示該指標是常量,指向的變數也是一個常量,這就意味著一旦確定了指向的變數則以上兩種情況都滿足,例如以下程式碼片段:
const int* const p;
int i = 8;
p = &i;
*p = 5; //產生編譯錯誤
int j = 40;
p = &j; /產生編譯錯誤
- 除了指標之外,也有引用與關鍵詞const相結合的情況,但是要注意的是引用常量是沒有任何意義的,因為引用一旦宣告並初始化之後就無法再改變了,相當於指標常量,也即:int& r 相當於const int* p,那麼int& const r就相當於是const int* const p了。例如下面程式碼片段:
int i = 8;
int& const r = &i;
r = 5; //非法,產生編譯錯誤,錯誤原因和const int* const相似
int j = 40;
r = j; //不會產生編譯錯誤,但是無意義。
如有錯誤,歡迎大家批評與指正!
相關推薦
C++中的const關鍵詞用法
在C語言和C++中,有一個用來修飾所有變數的關鍵詞const,表示將此變數變成常量的意思。比如,對int型變數加上一個const,那麼該變數就是一個常量了,也即該變數無法再發生改變了。例如下面的程式碼片段: cont int i = 5; i = 8;
c/c++中const用法總結
沒有 pan 分配 值類型 變量初始化 _id 多少 部分 參數 1、修飾常量時: const int temp1; //temp1為常量,不可變 int const temp2; //temp2為常量,不可變 2、修飾指針時: 主要看const在*的前後,
C/C++中const關鍵字的用法及其與宏定義的比較
類型安全 屬性 const關鍵字 code oid 程序 函數返回值 存儲空間 臨時對象 1.const關鍵字的性質 簡單來說:const關鍵字修飾的變量具有常屬性。 即它所修飾的變量不能被修改。 2.修飾局部變量 1 const int a = 10; 2 int co
C#中const用法詳解
htm 鏈接 服務器 span img body 用法詳解 -s 設計 本文實例講述了C#中const用法。分享給大家供大家參考。具體用法分析如下: const是一個c語言的關鍵字,它限定一個變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性,另外,
C++ const關鍵詞用法
volatile ati 意義 屬性。 private 不可 一個 編譯器 後者 【轉載】轉自 https://www.cnblogs.com/chogen/p/4574118.html const是一個C++語言的限定符,它限定一個變量不允許被改變。使用const在一定程
C++中CONST用法總結
1、修飾常量時: ? 1 2 const int temp1; //temp1為常量,不可變 int const temp2; //temp2為常量,不可變 2、修飾指標時: 主要看const在*的前後,
關於c++中const的基本用法
c++中的const 有點類似於c裡的巨集定義#define,但是似乎是在巨集定義基礎上的程式碼優化,具體我解釋不清,下面主要提到的是 const 在c++中的3中基本用法: 1.指向常量的指標 例如:const char* pc=“sada"; 含義:宣告一個名為
轉:C++中const、volatile、mutable的用法
const修飾普通變數和指標 const修飾變數,一般有兩種寫法: const TYPE value; TYPE const value; 這兩種寫法在本質上是一樣的。它的含義是:const修飾的型別為TYPE的變數value是不可變的。對於一個非指標的型別T
C++中const常量的用法總結
C++中const用法總結 思維方式:是什麼?為什麼?怎麼用? C++中有些什麼東西? const可以修飾些什麼? 什麼原理(誰變,誰不變)? 有什麼好處? C++中有些什麼? 資料:變數、常量(字面量) 函式(方法)、{程式碼塊} 常量: 1,0.1,’a’,”
C++中const用法淺析
看到const 關鍵字,很多程式設計師想到的可能是const 常量,這可有點象踩到陷井上還不知道自己危險了。讀讀以下文字會使你對c++中的const有一個全面的認識。 const 是C++中常用的型別修飾符,有某些微妙的應用場合,如果沒有搞清本源,則錯誤在所難免。本篇中
[轉]C++中const的使用
用法 non-const tint brush include 函數返回 .com pre oid 原文鏈接:http://www.cnblogs.com/xudong-bupt/p/3509567.html 平時在寫C++代碼的時候不怎麽註重const的使用,長久以來就把
預處理、const、static與sizeof-C++中const有什麽作用(至少說出3個)
什麽 需要 char 修改 抽象 ons 時間 數據 amp 1:作用如下: (1)const用於定義常量:const定義的常量編譯器可以對其進行數據靜態類型安全檢查。 (2)const修飾函數形式的參數:當輸入參數為用戶自定義類型和抽象數據類型時,應該將“值傳遞”改為“c
【轉】C++中const在函數名前面和函數後面的區別
const成員函數 調用 參數傳遞 成員 指向 int 區別 ... urn 一、概念 當const在函數名前面的時候修飾的是函數返回值,在函數名後面表示是常成員函數,該函數不能修改對象內的任何成員,只能發生讀操作,不能發生寫操作。 二、原理: 我們都知道在調用
C#中問號的用法
變量 ring 返回 express () operator boolean per 泛型 1. 可空類型修飾符(?): 引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空。 例如: string str=null;是正確的。 int
C++中const,static,inline的用途
ue4 dba pac use lzw fsm 強硬 oci jce G7U42mcs62卸ehttp://www.docin.com/app/user/userinfo?userid=180985862 閱惶0欠4r肝6置gw人http://docstore.docin
C#中HttpWebRequest的用法詳解
網站 default 編碼方式 對數 c# toarray collect acc like 本文實例講述了C#中HttpWebRequest的用法。分享給大家供大家參考。具體如下: HttpWebRequest類主要利用HTTP 協議和服務器交互,通常是通過 GET 和
C#中HashTable的用法
會有 string false border div hash 包含 tool each 首先,從命名空間開始 System.Collections 接下來進入正題. Hashtable的常用方法和屬性:
C++中的map用法詳解
時間 占用 sort函數 數組 例程 通道 組織 sso 查找 Map是 STL的一個關聯容器,它提供一對一(其中第一個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值)的數據 處理能力,由 於這個特性,它完成有可能在我們處理一對一數據的
【轉載】 c++中static的用法詳解
ostream 並不會 style 轉載 程序員 都是 note 每次 reference 出處: http://blog.csdn.net/majianfei1023/article/details/45290467 C 語言的 static 關鍵字有三種(具體來說是
c#中this的用法及作用
sys 靜態成員 mes 成員 成員方法 read 訪問 write stat 在C#中, 1. this關鍵字代表當前實例,我們可以用this.來調用當前實例的成員方法,變量,屬性,字段等; 2. 也可以用this來做為參數狀當前實例做為參