Const:定义常变量,不能写,只能读。
Const修饰指针 const char *src 不允许修改形参的值。
Const要点:
1、限定写权限,将变量变为只读。
2、数据类型对const来说是透明的
Const int cb=10;<=>int const cb =10;
3、const用于封锁直接修饰的内容,将内容变为只读,const修饰它的直接右边,使其只读。
4、权限可以同等或者缩小传递,不能放大传递。
注:
左值:放在赋值符号左边,即写权限。
右值:放在赋值符号右边,为读权限。
列如:
#include<stdio.h>
int main()
{
int a=10;
a=20;//左值
int b=a;
/*
const int ca=100;
ca=200;//因为ca被const修饰,故只读,即恒为100。因此赋值错误。------1
const int cb;//cb不能不赋值,否则打印会出现随机值。----------------2
int const cb=100;//因为const int与int const无区别,故错误同1一样。-3
*/
/*
const int ca=100;
int const cb=100;
const int *cp1=&a;
cp1=&b;
*cp1=200;//*cp1被const修饰,故无法更改。
int * const cp3=&a;
cp3=&b;//此处const修饰的是cp3。
*cp3=200;
*/
/*
int const *const ccp=&a;
ccp=&b;//上一句中,第二个const修饰ccp,故ccp为只读;
*ccp=100;//同上,第一个const修饰*const ccp,故*const为只读;
*/
/*
int a=10;
int b=20;
const int ca=10;
const int cb=20;
int *p=&a;
p=&ca;//const int *不能转化为 int *
const int *cp1=&a;
cp1=&b;//int *不能转化为 const*
cp1=&ca;
//权限只能同等传递或者缩小传递。
*/
}