【嵌入式C语言】const关键字不会用?,那你需要这篇文章

本文详细介绍了C/C++中const关键字的使用,包括如何将变量声明为只读以及const与指针的结合应用。const在C语言中使变量变为只读,而在C++中则使变量变为真正的常量。const常量在定义时必须初始化。在函数参数中使用const可以防止函数修改实参值。此外,const与指针的组合分为三种情况:指针可变但值不可变,值可变但指针不可变,以及两者都不可变。总结了const在指针左侧和右侧的不同作用,即'左定值,右定向'。

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

1.const 怎么用

const 是C语言的一个关键字

const 关键字是把变量变为一个只读的变量,绝对不是将这个变量变为常量。

也就是说经过const 修饰的变量成为只读的变量之后,那么这个变量就只能作为右值(只能赋值给别人),绝对不能成为左值(不能接收别人的赋值)。

而 C++ 则是将 const 修饰的常量变为一个真正的常量(变量的内容不可以被修改), 这一点的区别需要进行注意。当 const 变量的时候,就将这个常量放在符号表里面,编译的过程中发现使用了变量,那么就从符号表里面的值进行替换。经过const 修饰的变量,在定义的时候,就要进行初始化。

C语言const修饰不可赋值,C++ const修饰直接变常量,不可修改

const int a = 10;  // 正确

const int a;       // 错误

const 关键字最有用的地方是用来限定函数的形参

func(const char *ptr)
{ }

这样 ,func 函数将不会修改实参指针所指的数据,但是其他的函数却可以修改他。

const 本质上被命名为 readonly 更为合适。

2. const与指针

const在*的左边,则指针指向的变量的值不可直接通过指针改变(可以通过其他途径改变);

const在*的右边,则指针的指向不可变。

👉 简记为“左定值,右定向” 👈

(1)指针可以改变,指向的值不能改变

    int a = 10;
    const int *p1 = &a;    //例如:允许 p1+=1 ,不允许 *p1=20
    int const *p2 = &a;    //这两句效果一样

(2)指向的值可以改变,指针不可改变

    int a = 1;
    int b = 2;
    int *const p3 = &a;     //例如:允许 *p=3 ,不允许 p3=&b

(3)指针和指向的值都不能改变

    int a=10;
    const int * const p4 = &a;
    int const* const p4 = &a;      //这两种写法一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值