常量指针,重心点在后面,它是一个指针,它指向一个常量。它指向的地址的内容不能被修改,是防止对指针误操作而出现修改常量这样的错误。
指针常量,重心点在后面,它首先得是一个常量,然后它是一个指针。系统不能修改指针常量所指向的地址,也就是说这个指针指向的地址一经初始化,就固定了。但是,它所指向的地址中的内容,是可以改变的。
(1)char* const p1;
(2)char const* p2;
(3)const char* p3;
(4)const char* const p4;
对以上四个声明进行分析:其实,只需要看const距离哪个近,靠近哪个就是修饰哪个。
(1)中,const是用于修饰p1指针本身的,即指针本身是个常量,但是p1所指向的内容可以被修改;
(2)中,const是用于修饰指针所指向的变量的,即指针p2所指向的内容必须为常量,不可被修改;
(3)中,与(2)相同;
(4)中,前一个const修饰指针所指向的内容,后一个const修饰指针本身,即指针p4本身就是个常量,并且它所指向的内容也必须是常量,不可被修改。
因此,p1是指针常量;
p2,p3是常量指针;
p4二者皆占。
时间: 2024-10-10 20:23:11