可变存储位置
Variable storage location
当我们将变量声明为时
char arr[] = "Hello";
则上面的字符串"Hello"位于堆栈中。
但是当我们将变量声明为时
char* arr = "Hello";
那么字符串"Hello"是在堆栈还是代码段中声明的?如果是代码段,为什么代码段不在堆栈中?
否。字符串文字未在任何段中声明。
它有静态存储持续时间,并且是只读的。
因为它是只读的,所以将其地址分配给char*
是不正确的。将其更改为char const* arr = "...";
相关文章:
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 为什么存储在内存位置的值会发生变化?
- 可变存储位置
- 将光标位置存储在类对象中(ncurses c++)
- 如何确定 SQLite 文件在 QML LocalStorage 中的存储位置
- 为同一存储位置调用构造函数两次是否合法?
- 原子功能无锁可以更改两个独立的存储位置
- NetUsergetLocalGroups()返回存储位置而不是LPWSTR字符串
- C++每个变量的存储位置是否正确?
- 存储位置作为放大动态数组中的最后值
- 动态分配存储数据在堆中的随机位置中
- 可视C 编译器将相同的存储位置提供给两个变量
- 存储unordered_map的位置
- 如何使用矢量或地图存储不同角色的位置
- 如何比较和存储 2 个向量的数据元素位置
- 存储类对象的C++模板链表-未处理的异常访问冲突读取位置
- 在声明中可以放置存储类说明符的位置
- C++阵列在内存中的存储位置
- 可视化 C++构造函数的存储位置
- 相同的内存位置存储两个不同的值