1.指针常量
一个存储了地址整数(指针)的常量,不能被改变,不能被其他指针赋值,必须初始化。
指针不能被修改
int a =10;
int* const p =&a; //const修饰指针
int b = 10;
*p =&b; //error
p++; //error
数组就是一个指针常量。
2.常量指针
一个指向常量的指针,指针指向的值不能改变,存储这个值的地址(指针)可以改变。
指针指向的东西不能被修改。
#include <stdio.h>
int main(void)
{
int a =10;
const int *p; //int const* p 写法等价,const修饰的是指针指向。
int b =20;
p = &a;
p = &b;//合法,指针指向可以改变
*p = 20;//非法,不能向const赋值
printf("p = %d\n",*p);
return 0;
}