C語言?const修飾普通變量和指針的操作代碼
一.const修飾普通變量
用const修飾普通變量時,是在語法層面限制了變量的修改,但是本質(zhì)上,變量還是變量,是一種不能被修改的變量。以下兩種定義方式都可以:
const int a = 10; int const b = 10;
變量的值不能修改,否則會報錯
但變量的值可以通過指針進行修改:
所以為避免變量的值被修改,同時又需要使用指針指向變量,那么就讓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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ 數(shù)據(jù)結(jié)構(gòu)之對稱矩陣及稀疏矩陣的壓縮存儲
這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之對稱矩陣及稀疏矩陣的壓縮存儲的相關(guān)資料,這里實現(xiàn)稀疏矩陣和對稱矩陣的壓縮存儲的實例,需要的朋友可以參考下2017-08-08對比C語言中g(shù)etc()函數(shù)和ungetc()函數(shù)的使用
這篇文章主要介紹了對比C語言中g(shù)etc()函數(shù)和ungetc()函數(shù)的使用,是C語言入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08