C笔记系列一:const类型

本文详细解析了C++中的常量概念及其用法,包括如何定义和使用常量,以及常量指针与指针常量的区别。通过具体的代码示例,帮助读者更好地理解这些核心概念。

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

const

限制对目标数据的修改。被const修饰的量称为常量,不能被修改。因为在使用中不能再次赋值,故在修饰普通变量时,会被强制要求初始化

void main() {
    const static int a; // 静态变量自动赋值初值0,正确
    cosnt int b;        // 常量未被初始化,错误
    a++;                // 错误
    a = 2;              // 错误
}

常量指针:指向常量的指针,如const int *p。通过该指针访问的目标单元,只能读不能写,但是并未改变目标单元的读写特性——当不通过指针访问时,仍可直接读写目标单元,只是限制了通过指针修改变量。

void main() {
    int a, b;
    cosnt int *p;  // 正确,因p本身不是常量,可以不初始化
    p = &a;        // 正确,因p本身不是常量
    *p = 40;       // 错误,*p指向的是常量,限制通过指针改变目标单元
    a = 30;        // 正确,目标单元的读写特性不会发生改变
    const int c = 2;
    int *p = &a;   // 错误,类型不匹配,应为const int *
    p = &c;        // 正确
}

指针常量:指针本身为常量,如int * const p。该指针的指向必须被初始化,且一旦初始化后,指针的指向就不能再发生改变,但通过指针访问的目标单元可以进行读写。

void main() {
    int a = 10, b = 5;
    int * const p = &a;  // 指针常量,必须被初始化
    *p = 12;             // 正确,通过指针访问的目标单元,其读写特性不变
    p = &b;              // 错误,指针的指向不能被改变
    return 0;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值