const与指针

1. const 常量类型表示一个常值变量,即值不能被改变的变量
2. 用const声明的变量必须用常量或常量表达式初始化
3. 用const限定限定该变量是程序设计的好习惯,如数组长度
     const int size =20;
     int arr[size]={1,2,3}
 4. 常指针与常值变量指针
         常指针的地址不可以改变
         常值变量指针的值不能变(举例如下)
const x=3.14;
double* const p1=&x;   //常指针:地址不能变
const double* p1=&x;   //常值变量指针:值不能变
const int size = 20;
int a[size];
const int b[4] = { 1,2,3,4 };
size = 100;//错误:非法修改常值变量
size++;//错误:非法修改常值变量
b[0] = 10;//错误:非法修改常值变量
double arr[5]={1.1,1.2,1.3,1.4,1.5};
const double x=12.23;
double* p1=&x;//错误:普通指针不能指向常值变量
const double*p2=&x;//正确:左边为常值变量指针
p2=arr;//正确:常值变量指针可以改变地址
p2++;//正确:这句改变的是常值变量指针的地址
(*p2)++;//错误:常值变量指针的值不能改变
double *const p3=arr;//正确:常指针指向数组首地址
p3++;//错误:常指针的地址不能改变
(*p3)++;//正确:常指针的值可以改变
double* const p4=&x;//错误:常指针不能指向常值变量
const int* Fun()
{
static int a=1;
//加上static是为了保留a的值(a的地址不变),即在第二次调用该函数时a=2
a++;
return &a;
}
int y;
y=*Fun();//正确
*Fun()=2;//错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值