c++ int * const p=&a 是什么含义


int * const p=&a
请各位解释下
最好有代码例
这个岁竖语句说明 p的值是不可更改的,即类似于p++, p--之类的操作都不允许,但是 p指向的对象是可以被改变的,即a的值是可乎镇大以通过 p更改的
示例:

#include <iostream>
using namespace std;

void main()
{
int a = 10;
int * const p = &a;
//下面这个语句是错误的
p++;
/旅春/下面这个语句是正确的
*p = 11;

cout << "a的值是 " << a << endl;
}

将会输出“a的值是 11”
p为常指针 指向 a 的地址 const 放在p前方 说明 p 所指向的地址是固定的 它只能指向这个地雀碧拆址单元 但是此地址内存放的数据可以改变慧李 如果const放在*前方就说明p所指向的数据不能改变 但是地址可以改顷枣变 具体看const的位置
定义了一个信山指针常量p,并且把变量a的地址拆坦顷赋给指针p,由于定旅陆义的是指针常量,所以指针p的值不能改变,也就是说p指向的地址不能改变,只能指向变量a
表明定义了一个常量,这个常量是一个int指针类型,这个指针指向一个int类型的变量,这个变量是a
int * const p=&a;
p是指向a的常指针饥滚山,p不允许再被赋值,指向别处烂中

int b = 123;

p=&b;备桥 //不允许
*p=123; //允许