1.const int *pt;
pt指针的值可以改,pt指针指向的值也可以改,但不能通过pt修改pt所指向的值(*pt只读)
const int value = 10;
const int *pt = &value;
2.int *const pt;
这表示 pt 是一个常量指针,它指向一个整数。这意味着 pt 的指向不可变,即 pt 只能指向初始化时所指向的对象,不能再指向其他对象。但可以通过 pt 修改所指向对象的值。即,pt 是一个不可变指针,但它指向的内容是可变的。例如:
int value = 10;
int *const pt = &value;
3.const int *const pt;
pt只能指向一个变量,同时也不能通过pt指针修改pt指针指向的值(*pt,pt均只读)
这表示 pt 是一个指向常量整数的常量指针。这意味着 pt 的指向和所指向内容都是不可变的。即,既不能通过 pt 修改所指向的整数的值,也不能让 pt 指向其他对象。这种情况下,既不能修改指针的指向,也不能修改指针指向的内容。例如:
const int value = 10;
const int *const pt = &value;
总结:
- const 关键字可以用于修饰指针或指针指向的内容。 const 在指针前表示指针指向的内容是不可变的。
- const 在指针后表示指针本身是不可变的,指向一旦确定就不能再改变。
- const 同时用于指针和指针指向的内容时,表示指针本身和指针指向的内容都是不可变的。