通过指针修改const和通过write flash修改的区别.

2019-07-21 01:45发布

定义的const变量,分配在rom中. 假设是一个数组a[100];
那么通过定义一个指针(int *)p 赋值给他 &a 的地址,  再给*p 赋值 来修改a.
比如想修改a[10], 可以*(p+9) = 233; 或者p=(&a[10]),*p=233;这样来修改.

也可以通过 write_flash来修改: 比如 write_flash(&a[10],233,长度) 来修改.

那么请问 这两种修改方式const 和写flash  的结果有什么区别?
为什么基本上都是通过写flash来修改,用指针修改不是更方便么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
edmund1234
1楼-- · 2019-07-21 04:15
 精彩回答 2  元偷偷看……
森海有眼泉
2楼-- · 2019-07-21 04:26
 精彩回答 2  元偷偷看……
jiangyy
3楼-- · 2019-07-21 07:57
const定义的数组中的数据是不可以修改的,write_flash我不知道是什么意思?是自定义的函数还是?
森海有眼泉
4楼-- · 2019-07-21 08:47
jiangyy 发表于 2018-10-25 16:34
const定义的数组中的数据是不可以修改的,write_flash我不知道是什么意思?是自定义的函数还是?

const不能直接修改 但是可以间接修改。通过地址指针 或者读写flash操作。
yklstudent
5楼-- · 2019-07-21 09:10
通过地址指针可以修改const地址数据?
烈日灼心
6楼-- · 2019-07-21 10:28
 精彩回答 2  元偷偷看……

一周热门 更多>