C語言?const修飾普通變量和指針的操作代碼
一.const修飾普通變量
用const修飾普通變量時(shí),是在語法層面限制了變量的修改,但是本質(zhì)上,變量還是變量,是一種不能被修改的變量。以下兩種定義方式都可以:
const int a = 10; int const b = 10;
變量的值不能修改,否則會(huì)報(bào)錯(cuò)
但變量的值可以通過指針進(jìn)行修改:
所以為避免變量的值被修改,同時(shí)又需要使用指針指向變量,那么就讓const修飾指針
二.const修飾指針
const 可以放在 * 左邊 ,可以放在 * 右邊 ,也可以放在 * 左右兩邊,這3種方式的意義各不相同
1.const 放在 * 左邊
const 放在 * 左邊限制的是指針指向的內(nèi)容,也就是說:不能通過指針來修改指針指向的內(nèi)容,但是指針變量是可以修改的,也就是指針可以指向其它變量
int main() { const int a = 10; const int* p = &a; *p = 20;//err int b = 20; p = &b;//ok return 0; }
2.const 放在 * 右邊
const 放在 * 右邊限制的是指針變量本身,指針變量不能再指向其它內(nèi)容,但是可以通過指針變量來修改指針指向的內(nèi)容
int main() { const int a = 10; int* const p = &a; *p = 20;//ok int b = 20; p = &b;//err return 0; }
3.const 放在 * 左右兩邊
const 放在 * 左右兩邊限制的是指針變量本身和指針變量指向的內(nèi)容,也就是說:不能通過指針來修改指針指向的內(nèi)容,指針也不能指向其它變量
int main() { const int a = 10; const int* const p = &a; *p = 20;//err int b = 20; p = &b;//err return 0; }
到此這篇關(guān)于C語言 const修飾普通變量和指針的文章就介紹到這了,更多相關(guān)C語言 const修飾指針內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ 數(shù)據(jù)結(jié)構(gòu)之對(duì)稱矩陣及稀疏矩陣的壓縮存儲(chǔ)
這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之對(duì)稱矩陣及稀疏矩陣的壓縮存儲(chǔ)的相關(guān)資料,這里實(shí)現(xiàn)稀疏矩陣和對(duì)稱矩陣的壓縮存儲(chǔ)的實(shí)例,需要的朋友可以參考下2017-08-08C++結(jié)構(gòu)體字節(jié)對(duì)齊示例
這篇文章主要為大家介紹了C++結(jié)構(gòu)體字節(jié)對(duì)齊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06對(duì)比C語言中g(shù)etc()函數(shù)和ungetc()函數(shù)的使用
這篇文章主要介紹了對(duì)比C語言中g(shù)etc()函數(shù)和ungetc()函數(shù)的使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08Qt實(shí)現(xiàn)字幕無間隙滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)字幕無間隙滾動(dòng)效果,文中的實(shí)現(xiàn)過程講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-11-11學(xué)習(xí)C和C++的9點(diǎn)經(jīng)驗(yàn)總結(jié)
本文給大家總結(jié)了一下我們在學(xué)習(xí)C和C++的時(shí)候的一些經(jīng)驗(yàn)和需要注意的事項(xiàng),希望能給大家一些幫助,少走些彎路2015-12-12