#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
const double a_size = 5;
const double *pdb = &a_size; //自以为指向const的指针,实际上可以不指向const对象。
double b_size = 5;
pdb = &b_size; //pdb是*变量,可以改变指向
//*pdb = 6; //*pdb是const double常量,不可以通过*pdb修改
b_size = 7;
//void *pv = &a_size; 不能用void *指针保存const对象的地址
//void *pv = pdb; 不能用void *指针保存const对象的地址
const void *pcv = &a_size; //自以为指向const的指针,实际上可以不指向const对象。
int id1 = 4;
pcv = &id1; //允许将非const对象的地址赋值给const对象的指针
id1 = 5;
//*pcv = 6; 不能通过*pcv修改,但是可以直接修改非const对象
//不保证指向const的指针所指对象的值一定不可以修改
int id = 4;
int *const cErr = &id; //cerr是const指针变量,必须定义的同时初始化,而且一经初始化,就不可以改变指向
*cErr = 11; //cErr是const不可以修改,但是*cerr是int,可以修改
const int id2 = 1;
//int *const cErr1 = &id2; //error: : 无法从“const int *”转换为“int *”,cErr1指向int类型,而id1是const int,因此不能初始化成功
system("pause");
}
const与指针
猜你喜欢
转载自blog.csdn.net/zhizhengguan/article/details/81195388
今日推荐
周排行