C語言中的指針常量是指指針的值不可改變的常量。使用指針常量可以提高代碼的可讀性和安全性。
要聲明一個指針常量,需要使用關鍵字const
來修飾指針變量的類型。例如:
const int* ptr; // ptr是一個指向常量整數的指針,ptr的值不可改變,但可以通過ptr間接修改所指向的數據
int* const ptr; // ptr是一個指向整數的常量指針,ptr的值不可改變,但可以直接修改所指向的數據
const int* const ptr; // ptr是一個指向常量整數的常量指針,ptr的值和所指向的數據都不可改變
使用指針常量時,不能通過指針來修改所指向的數據,但可以通過其他方式來修改。例如:
const int* ptr;
int num = 10;
ptr = # // 允許指針指向一個整數變量
*num = 20; // 錯誤,不能通過指針來修改所指向的數據
在函數參數中使用指針常量可以確保函數內部不會修改指針指向的數據。例如:
void print(const int* ptr) {
printf("%d\n", *ptr); // 允許讀取指針指向的數據
*ptr = 20; // 錯誤,不能通過指針來修改所指向的數據
}
int main() {
int num = 10;
print(&num);
return 0;
}
總之,使用指針常量可以提高程序的安全性,避免不必要的數據修改。