常量指针和指针常量

1、常量指针

定义:只能读取内存中数据,不能修改内存中数据的指针。称为指向常量的指针,简称常量指针

声明:const int *p;   int const *p;

2、指针常量

定义:指针指向的位置不能变,即指针本身是一个常量,但指针指向的内容可以变

声明:int * const p = &a;

注:指针常量必须在声明的时候对其初始化,不允许先声明一个指针常量再对其赋值

3、示例

int a = 1; 定义变量

const int b = 2; 定义常量

const int *ptr1 = &a; 定义常量指针

int * const ptr2 = &a;定义指针常量

int *ptr3=&b;  错误, 不能把常量的地址赋给指针变量

const int* ptr4=&b; 正确,可以把常量的地址赋给常量指针

*ptr1=3; 错误,间接引用常量指针不可以修改内存中的数据

*ptr2=4;  正确,间接引用指针常量可以修改内存中的数据

ptr1=&b;  正确,常量指针可以指向其他变量

ptr2=&b;  错误,指针常量不可以指向其他变量

const int * const ptr5=&a;  常量指针常量,即不可以间接引用修改内存数据,也不可以指向别的变量

*ptr5=5;  错误,不可以间接引用修改内存数据

ptr5=&b; 错误,不可以修改指向的对象

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,885评论 1 32
  • 1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...
    金巴多阅读 5,869评论 0 9
  • 基本内置类型 算术类型字符整型布尔值浮点数 空类型(void) 算术类型 带符号类型和无符号类型int、short...
    2625K阅读 8,757评论 0 1
  • C++是在C语言的基础上发展来的。C++除了有C语言的指针外,还增加一个新的概念——引用,初学者容易把引用和指针混...
    萧潇公举阅读 12,745评论 1 5
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,827评论 3 44

友情链接更多精彩内容