const int *p和int const *p有什么区别
时间: 2023-08-14 13:06:26 浏览: 191
`const int *p` 和 `int const *p` 都是指向常量整型的指针,它们的区别在于指针本身的常量性质。
`const int *p` 的意思是指针 `p` 指向的是一个常量整型变量,也就是说通过 `p` 指针是不能修改所指向的变量的值的,但是指针本身是可以修改的,即可以指向其它的常量整型变量。
而 `int const *p` 的意思是指针 `p` 本身是一个指向常量整型变量的指针,也就是说通过 `p` 指针是不能修改所指向的变量的值的,同时指针本身也是不能修改的,即不能指向其它的常量整型变量。
例如:
```
const int a = 10;
const int b = 20;
const int *p1 = &a; // 指针p1指向a常量
p1 = &b; // 正确,p1可以指向其它常量整型变量
int c = 30;
int d = 40;
int const *p2 = &c; // 指针p2指向c常量
p2 = &d; // 正确,p2可以指向其它常量整型变量
```
相关问题
constint*p,intconst*p和int*constp的含义
- `const int* p`:指向常量整型的指针。指向的整型数值不能被修改,但指针本身可以被修改。
- `int const* p`:也是指向常量整型的指针。指向的整型数值不能被修改,但指针本身可以被修改。这种写法虽然和第一种写法不同,但是它们的含义是相同的。
- `int* const p`:指向整型的常量指针。指针本身的值不能被修改,即指针指向的地址不能被修改,但指针所指向的整型数值可以被修改。
综上所述,`const int* p`和`int const* p`都是指向常量整型的指针,只是语法上略有不同;而`int* const p`则是指向整型的常量指针,指针本身的值不能被修改,但指向的整型数值可以被修改。
const int * p和const * int p 区别
const int * p 和 const * int p 是两种不同的语法表达方式,具有不同的含义和用途。
const int * p 表示 p 是一个指向常量整数的指针。这意味着指针 p 可以指向一个整数,但不能通过 p 来修改所指向的整数的值。即 p 是一个指向只读数据的指针。
const * int p 则是语法错误,应该是 const int * p 的错误写法。
请注意,在 C/C++ 中,声明符的结合性是从右至左的,所以 const int * p 应该被理解为 “const (int * p)” ,即 p 是一个指向常量整数的指针。
希望以上解释能对你有所帮助!如果你还有其他问题,请继续提问。
阅读全文
相关推荐

















