找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1070|回复: 7
打印 上一主题 下一主题
收起左侧

const修饰变量不可修改问题

[复制链接]
跳转到指定楼层
楼主
本帖最后由 李冬 于 2023-1-17 13:32 编辑

用const修饰变量不可修改,在执行到某一段代码时,我想修改这个变量,然后再把它修饰成不可修改,如何做。

51hei图片_20230117133145.png (14.2 KB, 下载次数: 29)

51hei图片_20230117133145.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1043747 发表于 2023-1-17 19:11 来自手机 | 只看该作者
类型转换
回复

使用道具 举报

板凳
ID:94031 发表于 2023-1-17 20:50 | 只看该作者
要能修改不要用const修饰,用 static修饰。
回复

使用道具 举报

地板
ID:824490 发表于 2023-1-19 18:45 | 只看该作者
如果你能上百度,“const”就在第一条位置给出了说明:
“Const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变。。。。”
回复

使用道具 举报

5#
ID:130230 发表于 2023-1-20 14:02 | 只看该作者
const修饰的变量就是常量,只有不想更改才会用这个修饰。用指针可以改,尝试如下语句 int* ptr = &d; *ptr = 4;
回复

使用道具 举报

6#
ID:130230 发表于 2023-1-20 14:13 | 只看该作者
jizhongbiao 发表于 2023-1-20 14:02
const修饰的变量就是常量,只有不想更改才会用这个修饰。用指针可以改,尝试如下语句 int* ptr = &d; *ptr ...

这里还有一个需要注意的,只有const修饰的局部变量可以修改,全局变量不可以修改。主要是因为存储位置不同,想了解这部分内容可以了解一下编译和链接。
回复

使用道具 举报

7#
ID:1059013 发表于 2023-1-20 14:30 | 只看该作者
我发现用const 声明的常量是存放在单片机代码区的(flash),运行时候不能改变的
回复

使用道具 举报

8#
ID:466250 发表于 2023-2-5 18:28 | 只看该作者
fishafish 发表于 2023-1-20 14:30
我发现用const 声明的常量是存放在单片机代码区的(flash),运行时候不能改变的

这个要看编译器,有些是指定rom区域,有些只是声明不可修改。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表