原文:
const int*p; //指向常量的指针,p值可以变,p指向的数值内容不可变
int const*p; //常量指针 p指向的内存不可以变,但是p指向的数值可以变
int*const p;//同2
const int* const p;//指向常量的常量指针。即p指向的内存和数值都不可变
改为:
const int*p; //常量指针,指向常量的指针。即p指向的内存可以变,p指向的数值内容不可变
int const*p; //同上
int*const p;//指针常量,本质是一个常量,而用指针修饰它。 即p指向的内存不可以变,但是p内存位置的数值可以变
const int* const p;//指向常量的常量指针。即p指向的内存和数值都不可变
新增: 图示分析(以25为例):
原文
- 常量指针
int * const p
先看const再看 * ,是p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。
- 指向常量的指针
const int *p
先看 * 再看const,定义一个指针指向一个常量,不能通过指针来修改这个指针指向的值
改为
- 指针常量
int * const p
先看const再看 * ,p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。
- 常量指针
const int *p
int const *p
先看*再看const,定义一个指针指向一个常量,不能通过指针来修改这个指针指向的值
原文:
(unsigned int*)0x100000 = 1234;
改为:
*(unsigned int*)0x100000 = 1234;