簡單總結(jié)C++中指針常量與常量指針的區(qū)別
我們先回顧下,什么是指針?什么是常量?指針是一種特殊的變量,它里面存儲(chǔ)的內(nèi)容是內(nèi)存地址。常量是指其里面存儲(chǔ)的內(nèi)容不能發(fā)生改變的量。明白了這兩個(gè)概念后,我們現(xiàn)在正式進(jìn)入指針常量與常量指針。
1.指針常量與常量指針的概念
指針常量就是指針本身是常量,換句話說,就是指針里面所存儲(chǔ)的內(nèi)容(內(nèi)存地址)是常量,不能改變。但是,內(nèi)存地址所對應(yīng)的內(nèi)容是可以通過指針改變的。
常量指針就是指向常量的指針,換句話說,就是指針指向的是常量,它指向的內(nèi)容不能發(fā)生改變,不能通過指針來修改它指向的內(nèi)容。但是,指針自身不是常量,它自身的值可以改變,從而指向另一個(gè)常量。
2.指針常量與常量指針的聲明
指針常量的聲明:數(shù)據(jù)類型 * const 指針變量。
常量指針的聲明:數(shù)據(jù)類型 const * 指針變量 或者 const 數(shù)據(jù)類型 *指針變量。
常量指針常量的聲明:數(shù)據(jù)類型 const * const 指針變量 或者 const 數(shù)據(jù)類型 * const 指針變量。
3.指針常量與常量指針的使用
3.1 指針常量的例子
/*指針常量的例子*/ int a,b; int * const p; p = &a;//正確 p = &b;//錯(cuò)誤 *p = 20;//正確
指針常量聲明的時(shí)候必須賦初始值。使用指針常量可以增加代碼的可靠性和執(zhí)行效率。
3.2 常量指針的例子
/*常量指針的例子*/ int a,b; int const *p; p = &a;//正確 p = &b;//正確 *p = 20;//錯(cuò)誤
關(guān)于區(qū)分指針常量的一個(gè)小技巧:const后的內(nèi)容為不能修改的。例如指針常量 int * const p = &a;則表示指針p的內(nèi)容不能修改;常量指針int const *p = &a;則表示指針p所指向的內(nèi)容不能修改。
到此,什么是指針常量和常量指針,以及兩者的差異,應(yīng)該清晰和明朗了。
相關(guān)文章
C++設(shè)計(jì)模式編程中簡單工廠與工廠方法模式的實(shí)例對比
這篇文章主要介紹了C++設(shè)計(jì)模式編程中簡單工廠與工廠方法模式的實(shí)例對比,文中最后對兩種模式的優(yōu)缺點(diǎn)總結(jié)也比較詳細(xì),需要的朋友可以參考下2016-03-03Java?C++?算法題解leetcode669修剪二叉搜索樹示例
這篇文章主要為大家介紹了Java?C++?算法題解leetcode669修剪二叉搜索樹示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09C++ new、delete(new[]、delete[])操作符重載需要注意的問題
這篇文章主要介紹了C++ new、delete(new[]、delete[])操作符重載需要注意的問題,本文同時(shí)講解了兼容默認(rèn)的 new、delete 的錯(cuò)誤處理方式、多態(tài)的問題等內(nèi)容,需要的朋友可以參考下2014-10-10C++課程設(shè)計(jì)之圖書館管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++課程設(shè)計(jì)之圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03