最近看別人的項(xiàng)目,發(fā)現(xiàn)const使用比較多,通過(guò)使用const來(lái)保護(hù)變量,這篇推文就來(lái)簡(jiǎn)單回顧一下相關(guān)知識(shí)!
|用法1
有時(shí)候定義了一些變量,但是并不想它被修改,簡(jiǎn)單理解就是定義了一些變量,這些變量的性質(zhì)是只讀,就可以使用const來(lái)保護(hù)相關(guān)數(shù)據(jù):
#include "stdio.h"
int main()
{
// 寫法1
const int a = 10;
// 寫法2
int const b = 10;
// 報(bào)錯(cuò)
a = 20;
// 報(bào)錯(cuò)
b = 20;
}
|用法2
除了保護(hù)變量,還能和指針配合使用,特別要注意const的位置,這是個(gè)細(xì)節(jié)問(wèn)題,不能忽視!!!
#include "stdio.h"
int main()
{
// 變量
int a = 10;
int b = 10;
// 寫法1
const int *p1 = &a;
// 寫法2
int const *p2 = &a;
// 寫法3
int *const p3 = &a;
// 重新賦值
p1 = &b;
p2 = &b;
// 報(bào)錯(cuò)
// p3 = &b;
// 成功
*p3 = 20;
// 報(bào)錯(cuò)
*p1 = 20;
}
注意它們的區(qū)別:1個(gè)只能改值,一個(gè)只能改地址!
|用法3
除了配合指針使用,還能作為函數(shù)的參數(shù)進(jìn)行使用,可以細(xì)分為兩類
類型1
為了防止在函數(shù)內(nèi)部修改指針指向的數(shù)據(jù),就可以用 const的如下寫法限制:
size_t strlen ( const char * str );
類型2
為了防止在函數(shù)內(nèi)部修改指針指向地址,就可以用 const的如下寫法限制:
voidtest( char *constobj);
特別注意:加了const的變量或指針和不加是有區(qū)別的, 不要隨便進(jìn)行類型轉(zhuǎn)換, 或者其他異常操作!
審核編輯:劉清
-
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
145111 -
CONST
+關(guān)注
關(guān)注
0文章
45瀏覽量
8711
原文標(biāo)題:C語(yǔ)言|const關(guān)鍵字
文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī),微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言volatile關(guān)鍵字詳解 精選資料分享
嵌入式程序員常見(jiàn)的const、static、volatile關(guān)鍵字
標(biāo)準(zhǔn)C語(yǔ)言總共有32個(gè)關(guān)鍵字
C++中mutable關(guān)鍵字詳解與實(shí)戰(zhàn)
C++中的const關(guān)鍵字介紹
淺談C++的mutable關(guān)鍵字
const關(guān)鍵字應(yīng)用總結(jié)
C語(yǔ)言32個(gè)關(guān)鍵字可以分為這幾類
淺析C語(yǔ)言中的regiseter關(guān)鍵字
快速掌握C語(yǔ)言關(guān)鍵字
C語(yǔ)言|const關(guān)鍵字介紹
評(píng)論