指针常量与常量指针【C++】

常量指针:const int* (int const*) 

一个指针,指向的内容是一个常量,内容不能修改,但指针本身可修改。修改内容时,编译器报错" error: assignment of read-only location ... "

 

指针常量: int * const 

一个常量,常量本身是一个指针,指针本身不能修改,但指针内容可修改。修改指针时,编译器报错" error: assignment of read-only location ... "

 

如果需要一个指针和指向内容皆为常量,不能更改,可以定义为: const int* const 

const int const* 为错误语法

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6         int a = 0;
 7     int b = 10;
 8     int const* p = &a; // 常量指针
 9     // 修改指针内容,报错
10     *p = 5; 
11 
12     const int* q = &b; // 等价int const*
13     p = q;
14     q = &a;
15     
16     int* const w = &a;
17     // 指针常量,报错
18     w = &b; 
19     *w = b;
20     
21     const int* const u = w;
22     // 修改地址和内容都报错
23     u = p;
24     *u = 0;
25     
26     return 0;
27 }
View Code

 

posted @ 2020-12-13 11:56  Louie-Liu  阅读(205)  评论(0编辑  收藏  举报