char* 字符串 地址为什么在ROM中
时间: 2023-02-24 14:16:53 浏览: 241
char* 类型的字符串一般储存在ROM中(也叫只读存储器),因为它们是不可变的,不需要在程序运行过程中修改。将它们储存在ROM中可以保证程序启动后的数据不会被修改,这是为了确保程序的稳定性和安全性。此外,将数据储存在ROM中也可以节省RAM的存储空间,因为ROM的容量通常比RAM大得多。
相关问题
vector<char> rom (13)={'M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'}; 这个语句哪里错误了
这个语句有两个问题:
1. 在定义 `vector` 对象时,不能在括号内同时指定大小和初始化列表。
2. 初始化列表中有多个元素,但是 `vector` 对象的类型为 `char`,而不是 `string`。
正确的写法如下:
```
std::vector<std::string> rom = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
```
这样定义后,`rom` 就是一个大小为13的 `vector` 对象,其中每个元素都是一个 `string` 类型的罗马数字字符串。
c51访问片外ROM的数据类型
在C51中访问片外ROM的数据类型通常是使用指针,指向存储在ROM中的数据。可以使用"code"关键字来定义指向ROM的指针,例如:
```
code char* str = "Hello World";
```
在上面的代码中,"code"关键字告诉编译器将字符串"Hello World"存储在ROM中,然后将指针"str"指向该字符串。这样就可以在程序中访问ROM中的数据了。需要注意的是,由于ROM是只读的,因此不能直接在程序中修改ROM中的数据。
阅读全文