首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >常量指针与常量字符串指针

常量指针与常量字符串指针
EN

Stack Overflow用户
提问于 2019-11-30 14:02:21
回答 2查看 247关注 0票数 1

我知道,如果我使用指向常量字符串的全局指针:

代码语言:javascript
运行
复制
const char *h = "hello";

变量h存储在可写数据段中。但如果我用

指向字符串的常量指针

代码语言:javascript
运行
复制
char * const h = "hello";

或指向常量字符串的常量指针。

代码语言:javascript
运行
复制
const char * const h = "hello";

那他会被存放在哪里?

EN

回答 2

Stack Overflow用户

发布于 2019-11-30 14:08:40

c++语言没有指定不同存储区域之间的区别,除了这两个变量都具有静态存储时间之外。在一个系统中,它们可能存储在同一区域,在另一个系统中存储在不同的区域。

考虑到变量在后一种情况下是const,语言实现可能会选择使用一个被保护不被覆盖的内存区域。

票数 2
EN

Stack Overflow用户

发布于 2019-11-30 14:10:28

首先,您一直说指向字符串的指针是不准确的。它们都是指向 char 的指针,这个字符是字符串的开头。

对于您的问题,当h是一个常量指针时,它将存储在哪里?,它将存储在内存的只读部分中。就像任何常数变量,如constant。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59116889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档