const 与 指针
指向 const 对象的指针
指向 const 对象的指针,不能够修改指针指向对象的值;但是可以修改指针的指向。举个例子:就是不能更换房间内的物品,但是可以更换房间。
我们都知道,指针的值是空间中的一个地址:也就是说不能修改地址指向对象的值;但是可以给指针一个新的地址。
#include <iostream>
int main(int argc, char const *argv[])
{
int pi = 300;
const int *pint = π
std::cout << "*pint=" << *pint << "\tpint=" << pint << endl;
int pi2 = 400;
// *pint = 500; //error 不能直接修改指针的指向的对象的值
pint = &pi2; //可以修改指针的指向
std::cout << "*pint=" << *pint << "\tpint=" << pint << endl;
return 0;
}
const 指针
const 指针即常量指针。指针的值不能修改,也就是说指针指向的地址不能变,但是可以修改指向对象的值。还是用房间与物品举例子:房间不能换,但是房间内的物品可以换。
#include <iostream>
int main(int argc, char const *argv[])
{
int number = 100;
int *const pNumber = &number;
std::cout << "*pNumber=" << *pNumber << "\tpNumber" << pNumber << endl;
//output : *pNumber=100 pNumber0x5ffe50
int number2=200;
// pNumber=&number2; // error : const 指针不能指向新的对象
number = 200; //可以修改const指针指向对象的值;指针指向的地址不变。
std::cout << "*pNumber=" << *pNumber << "\tpNumber" << pNumber << endl;
//output : *pNumber=200 pNumber0x5ffe50
return 0;
}
标签:const,指向,int,修改,地址,指针
From: https://www.cnblogs.com/pangzishuoma/p/17498800.html