在C語言中,常量指針指向的是一個常量值,該值不能通過指針進行修改。常量指針的聲明方式是將const關鍵字放在指針變量名之前。
以下是常量指針的使用示例:
const int* ptr; // 聲明一個指向常量整數的指針
int num = 5;
ptr = # // 指針指向變量num
printf("%d\n", *ptr); // 輸出指針所指向的值,輸出5
// *ptr = 10; // 錯誤,不能通過常量指針修改所指向的值
const char* str = "Hello"; // 聲明一個指向常量字符的指針
printf("%s\n", str); // 輸出指針所指向的字符串,輸出Hello
// str[0] = 'h'; // 錯誤,不能通過常量指針修改所指向的字符
const int* const ptr2 = # // 聲明一個指向常量整數的常量指針
printf("%d\n", *ptr2); // 輸出指針所指向的值,輸出5
// *ptr2 = 10; // 錯誤,不能通過常量指針修改所指向的值
// ptr2 = &another_num; // 錯誤,不能修改常量指針的指向
在上述示例中,ptr
是一個常量指針,它指向一個整數變量num
。由于ptr
是常量指針,不能通過*ptr
修改所指向的值。類似地,str
也是一個常量指針,指向一個字符串常量,不能通過str[0]
修改所指向的字符。
ptr2
是一個常量指針,同時也是一個常量,既不能通過*ptr2
修改所指向的值,也不能修改指針的指向。
總結來說,在C語言中,常量指針指向的值不能通過指針進行修改,但可以指向不同的變量或常量。