指针与const

指针可以是const
指针所指的变量也可以是const

指针是const

  • 表示一旦得到了某个变量的地址,不能再指向其他变量
int * const j=i;//j的值不能再改变
*j=1;//i的值可以改变
*j++;//错误,指针不能进行运算

指针所指的值是const

  • 表示不能通过指针去修改指针所指的变量
const int *p=&i;
*p=1;//error!(*p)是const
i=2;//OK,可以通过i修改值
p=&j;//OK

判断是指针还是值被const

  • const在*前则是const指针
  • const在*后则是const值
const int* p1=&i;
int const* p2=&i;
int *const p3=&i;

const 数组

  • const int a[]={1,2,3,4,5,6};
  • 数组变量已经是const的指针了,这里的const表明数组的每个单元都是const int
  • 所以必须通过初始化进行赋值
  • 因为把数组传入函数时传递时传递的是地址,所以那个函数内部可以修改数组的值
  • 为了保护数组不被函数破坏可以设置参数为const
//main函数中不为const数组也可传入sum函数中
int sum(const int a[],int length);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值