const 修饰指针的4种变化

157 阅读1分钟

const限定符和指针结合起来常见的情况有以下几种。:

一、常量指针(不能改变常量,但可以改变指针)

const int* p;
int const * p;

这两种情况是一样的,p 是一个指向 const int 型的指针,p所指向的内存单元的值不能被改写,但是 p 存的地址可以被改写。所以(*p)++是不可以的,而 p++是可以的!

一般来说,第二种很少用,因为 int* 本就是一种指针类型。

二、指针常量(不能改变指针,但可以改变常量)

int* const p;

p 是一个指向 int 型的 const 指针,p 存的地址不能被改写(指针只能指向一个地址),但是 p 所指向的内存单元的值可以被改写(虽然指针只能指向一个地址,而且不能修改指针的值,但是可以修改该地址的值)

三、指向整形常量的常量指针

const int* const p;

p 是一个指向 int 型的 const 指针,p所指向的内存单元的值不能改写,而且 p 存的地址也不能被改写

知识点习题:

  1. 以下关于指针的说法,正确的是()

A. int *const p与int const *p等价
B. const int *p与int *const p等价
C. const int *p与int const *p等价
D. int *p[10]与int (*p)[10]等价

正确答案:C

  1. 在这里插入图片描述

正确答案: A

答案解析:

3的指针指向不可以变


如有不同见解,欢迎留言讨论~~