常量指针和指针常量

使用指针必须清楚,指针不是地址,是用来存放地址的,指针本身也是有地址的!

const char *p;//定义一个指向常量的指针
char *const p;//定义一个指针常量,一旦初始化之后其内容不可改变

指针常量:不能通过指针修改值

int main(){
int a = 100;
const int *p;//定义了一个指向常量的指针变量
p = &a;
*p = 10;//不可以通过指向常量的指针修改其对应的值
return 0;
}
运行报错:*p readonly

const定义常量

在C/C++中很少会用const定义常量,因为可以通过指针修改常量的值,一般都是用宏定义常量

const int b = 300;
int *p;
p =(int *)&b;//b和p类型不相同,要强转
*p = 100;

运行不会报错,b的值是100

常量指针:指针只能指向固定的地址

int  a = 100;
int * const p = &a;//定义了一个常量指针,这种指针只能指向固定的一个地址
*p = 123;
printf("%d",a);//正确输出123
======================
新加入
int a1 = 0;
p = &a1;//报错,p不能修改!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容