const在C和C++中的区别
C语言const int n=10;//C语言以变量为主
C++中const int n=10;//C++以常量为主
对于int ar[n]={1,2,3,4};
我们知道在C语言中
int ar[n]={1,2,3,4};
是错误的
但在C++中是正确的
const与指针的关系
int main()
{
int a=10,b=10;
int *p1=&a; //普通指针
*p1 = 20;//正确
p1 = &b;//正确
const int *p2=&a;//指向为常性(解引用为常性)
*p1 = 20;//错误
p1 = &b;//正确
int const *p3=&a;//指向为常性(解引用为常性)
*p1 = 20;//错误
p1 = &b;//正确
int* const p3=&a;//指针变量自身为常性
*p3 = 20;//正确
p3 = &b;//错误
const int *const p4=&a;//指针自身和指向都为常性
int* const p3 = &a;
*p4 = 20;//错误
p4 = &b;//错误
}
常变量与指针
const int a=10;
因为a的值不能被修改
int *p1=&a;//错误
int *const p2=&a;//错误
const int *p3=&a;//正确
int const *p4=&a;//正确
const int *const p3=&a;//正确
int const *const p4=&a;//正确
总结
权限只能由多的的给平级的或者少的的