int x = 5;
int y = 10;
const int* p = &x; //可以理解为修饰的是 这个内存中的地址里的值 不可修改 常量指针
int* const q = &x; //指针本身是可读的 const修饰的是指针本身 指针常量
cout << q << endl;
//*p = 8; //报错,不可修改
*q = 8; //不报错,可以修改
//q = &y; //报错,因为常量修饰,不能赋值
cout << q << endl;
cout << x << endl;
void fun(const int*a)
{
int b = 89;
a = &b;
//*a = 65; //const修饰的是a,表达式必须是可修改的左值
std::cout << "传入:" << a << std::endl;
}
int main()
{
int a = 10;
std::cout << "初始值:" << &a << std::endl;
fun(&a);
std::cout << "计算后:" << &a << std::endl;
}
初始值:00BDFA8C
传入:00BDF9A4
计算后:00BDFA8C
网友评论