在C語(yǔ)言中,const關(guān)鍵字用于聲明一個(gè)常量,即其值在初始化后不能被修改。當(dāng)我們將const關(guān)鍵字與指針一起使用時(shí),可以創(chuàng)建一個(gè)指向常量的指針。這種指針有以下兩種使用方法:
const type *pointer_name;
例如,我們可以聲明一個(gè)指向整型常量的指針,如下所示:
const int *ptr;
這里,ptr
是一個(gè)指向整型常量的指針,我們不能通過(guò) ptr
修改它所指向的值。例如:
int a = 10;
const int *ptr = &a; // ptr 指向 a 的地址
*ptr = 20; // 錯(cuò)誤!不能通過(guò) const 指針修改所指向的值
type *const pointer_name;
例如,我們可以聲明一個(gè)指向整型變量的常量指針,如下所示:
int a = 10;
int *const ptr = &a; // ptr 是一個(gè)指向 a 的常量指針
ptr = &b; // 錯(cuò)誤!常量指針不能被重新賦值
總結(jié)一下,指向常量的指針(Pointer to const)允許你改變指針的值,但不能通過(guò)指針改變它所指向的值;而常量指針(Const pointer)不允許你改變指針的值,但可以通過(guò)指針改變它所指向的值。