目录
一,什么是const及其作用
int const a=1;
const int a=1;
两种方法都可以效果相同
const用于修饰定义变量并限制其数值:
const修饰时无法改变其数值,但a并不是常量而是常变量如下图,只有常量才可以定义数组长度,这充分说明const修饰的并不是常量
const只是在语法层面加以限制,其实还是变量 即常变量
二,const修饰指针的两种方式
1. const *(*前)
const int *p =&a; const限制*p
p为存的为地址,*p为解引用。*p限制了解引用内容不能改变,
故 const修饰的是*p,表示p指向的对象不能通过p来改变,但p变量中的地址可以改变
2. * const(*后)
int * const p =&a; const限制了p
const限制了地址,则地址不能改变,但 可以改变地址内容
故 修饰的是p,表示p的内容不能改变,但是p指向的对象是可以通过p来改变的
3.以下将用模拟实现strlen来示例const修饰指针
图中const限制*p即限制该地址中的内容