C++总复习_const限定符

本文详细阐述了C++语言中const的定义、作用及应用,包括const修饰变量、指针、常量指针和指针常量的用法,并通过实例展示了如何正确使用const来避免程序错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.const的定义
在C++语言中,使用const限定符修饰变量的声明时,被修饰的变量成为常量变量,简称为常量。
使用const限定符声明常量时,由于常量不能作左值,所以要求声明常量的同时必须初始化常量。

const  double  PI=3.14;//正确

const  int N;//错误,没有初始化

PI=3.1415926;//错误,常量不能作左值

2.const修饰指针声明

使用指针变量做间接访问时,涉及到两个变量,一个是指针变量,另一个是被指针指向的变量。

使用const限定符修饰指针变量声明时,可以将指针变量限定为常量,这时的指针称为指针常量,它不能再指向其它变量(不能作左值)

例如:

int a=0;

int b=1;

int * const p=&a;

p++;//错误,指针常量不能作左值

p=&b; //错误,指针常量不能作左值

声明指针常量必须对指针进行初始化,因为指针本身是常量。

使用const限定符修饰指针变量声明时,还可以将const放在变量声明之前,这样声明的指针称为常量指针

常量指针本身不一定是常量,指针所指的变量也不一定是常量,但是在使用常量指针做间接引用时,却不能作左值使用。

例如:

int a=0;

const  int * p;

p=&a;//正确,常量指针本身不是常量,可以作左值

a=1;//正确,a是不是常量

*p=1;//错误,p是常量指针,作间接引用时不能作左值


我们可以把指针常量和常量指针结合起来

例如:

int a=0;

const int * const p =&a;

此时的p不能作左值,间接引用时,*p也不能作左值。

3.const应用

char *p="hello";

声明中的字符串"hello"存放在常数区,其值不能修改,执行下面的语句:

p[0]= 'H';

将引起程序崩溃。如果我们在声明指针p时,加入const限定符,变成如下形式:

const  char *p="hello";

使p成为常量指针,这时企图修改字符串"hello"的语句,如:

p[0]= 'H'; //错误,p是常量指针,作间接引用时不能作左值

将成为编译错误。编译时发现错误,总比程序崩溃要好的多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值