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

来源:百度知道 编辑:UC知道 时间:2024/07/04 23:31:14
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”

int * const p=&a;
p是指向a的常指针,p不允许再被赋值,指向别处

int b = 123;

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

表明定义了一个常量,这个常量是一个int指针类型,这个指针指向一个int类型的变量,这个变量是a

p为常指针 指向 a 的地址 const 放在p前方 说明 p 所指向的地址是固定的 它只能指向这个地址单元 但是此地址内存放的数据可以改变 如果const放在*前方就说明p所指向的数据不能改变 但是地址可以改变 具体看const的位置

定义了一个指针常量p,并且把变量a的地址赋给指针p,由于定义的是指针常量,所以指针p的值不能改变,也就是说p指向的地址不能改变,只能指向变量a

这个是指针常量,代表p指向a所在的地址,况且p不能被指向别的地方...