在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语言中,常量指针指向的值不能通过指针进行修改,但可以指向不同的变量或常量。