1,const修饰普通变量
const+类型+变量名=常量; //类型:int char short 等等
类型+const+变量名=常量; //举例:const int a=5; int const a=5;
这两种写法表示a的值不能够改变
当我们直接改变const修饰的普通变量时,编译器会报警告
显然,const具有防止变量被修改的功能
虽然被const修饰的普通变量不能被直接修改,却可以被可以通过普通变量的地址去修改。
注意:1.被const修饰的变量在C语言中具备了常属性,但是并不是常量
解释:在定义数组时,vs中并不支持变长数组,所以数组的元素个数必须为常量,所以n不是常量
2.在c++中被const修饰的普通变量是常量
2.const修饰指针变量
1 int *const p; //表示p指向的地址不能被改变
2 int const* p; //2和3均表示p指向空间的内容不能被改变
3 const int *p;
4 const int *const p; //4和5均表示p指向的空间和内容均不能被改变
5 int const*const* p;
(1)const修饰p
使用const修饰p时(也就是const在*的右边),表示p里面存储的地址不能被修改,但是地址指向的内容是可以修改的
(2)const修饰*p
写法2和3均表示const修饰*p,也就是p指向的地址的内容不能被修改,但是p存储的地址是可以修改的
(3)const同时修饰p和*p
写法4和5表示const即修饰p又修饰*p,也就是p指向的地址和内容均不能被修改