标题: const修饰变量不可修改问题 [打印本页]

作者: 李冬    时间: 2023-1-17 13:21
标题: const修饰变量不可修改问题
本帖最后由 李冬 于 2023-1-17 13:32 编辑

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

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

51hei图片_20230117133145.png

作者: censv    时间: 2023-1-17 19:11
类型转换
作者: xuyaqi    时间: 2023-1-17 20:50
要能修改不要用const修饰,用 static修饰。
作者: 名字不是重点    时间: 2023-1-19 18:45
如果你能上百度,“const”就在第一条位置给出了说明:
“Const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变。。。。”
作者: jizhongbiao    时间: 2023-1-20 14:02
const修饰的变量就是常量,只有不想更改才会用这个修饰。用指针可以改,尝试如下语句 int* ptr = &d; *ptr = 4;
作者: jizhongbiao    时间: 2023-1-20 14:13
jizhongbiao 发表于 2023-1-20 14:02
const修饰的变量就是常量,只有不想更改才会用这个修饰。用指针可以改,尝试如下语句 int* ptr = &d; *ptr ...

这里还有一个需要注意的,只有const修饰的局部变量可以修改,全局变量不可以修改。主要是因为存储位置不同,想了解这部分内容可以了解一下编译和链接。
作者: fishafish    时间: 2023-1-20 14:30
我发现用const 声明的常量是存放在单片机代码区的(flash),运行时候不能改变的
作者: 蓝蓝小星星    时间: 2023-2-5 18:28
fishafish 发表于 2023-1-20 14:30
我发现用const 声明的常量是存放在单片机代码区的(flash),运行时候不能改变的

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1