C语言指针常量和常量指针
在 C/C++ 中,const 关键字用于定义常量。在涉及指针时,const 的使用可以带来不同的含义。下面是几种常见的指针与 const 的组合方式及其含义:
-  常量指针(Pointer to Constant) const int* ptr;- 含义:指针 ptr指向一个const int类型的值。这意味着你不能通过ptr修改它所指向的值,但你可以修改指针本身,使其指向不同的const int对象。
 int a = 5; const int* ptr = &a; // *ptr = 10; // 错误:不能修改 *ptr 的值 int b = 10; ptr = &b; // 合法:可以改变指针的指向
- 含义:指针 
-  常量指针(Constant Pointer) int* const ptr;- 含义:指针 ptr是常量的,这意味着指针ptr一旦初始化后,其指向的内存地址不能更改。但是,你可以通过ptr修改其指向的值。
 int a = 5; int* const ptr = &a; *ptr = 10; // 合法:可以修改 *ptr 的值 // ptr = &b; // 错误:不能改变 ptr 的指向
- 含义:指针 
-  常量指针到常量(Constant Pointer to Constant) const int* const ptr;- 含义:指针 ptr本身和它所指向的值都是常量的。这意味着你不能通过ptr修改它所指向的值,也不能改变ptr指向的地址。
 int a = 5; const int* const ptr = &a; // *ptr = 10; // 错误:不能修改 *ptr 的值 // ptr = &b; // 错误:不能改变 ptr 的指向
- 含义:指针 
总结一下,const 关键字在指针声明中的位置决定了 const 的作用范围:
- const放在- *之前,表示指向的值是常量。
- const放在指针变量的声明部分,表示指针本身是常量。
希望这些解释对你理解 const 与指针的关系有所帮助!如果有更多问题或需要进一步的解释,请随时提问。