如何找到字符串文字的地址?

Shrinidhisondur

假设我有以下内容:

char *a = "Learning CPP";
char *b = "Learning CPP";

我可以说使用的总内存是sizeof(a)而不是2 * sizeof(stringliteral)吗?

因为我对String文字的理解是存储了字符串的一个副本。但无论如何,

它不是存储在内存中的a,a + 1,a + 2 ..... a + 12地址之间,还是存储在内存中的b,b + 1,b + 2 ... b + 12之间(12是sizeof串)?

埃里克·利珀特

如何找到字符串文字的地址?

已经找到了字符串文字的地址。字符串文字的值是其第一个字符的地址您已将该值分配给ab

我可以说使用的总内存是sizeof(a)而不是2 * sizeof(a)吗?

首先,这个问题的格式不正确。sizeof(a)是指针的大小。

您打算问:

我是否可以说用于字符串文字的总内存是一个字符串的一个副本所需的大小,而不是该字符串的两个副本所需的大小?

否。那是编译器的实现细节。它可以选择内嵌字符串,也可以不选择临时存储。如果您修改其中一个字符串,则实现定义是否观察到另一个字符串被修改。

这是一个更普遍的事实的结果,如果您修改其中一个字符串,则由实现定义,周期。什么都可能发生。

我对字符串文字的理解是存储了字符串的一个副本。

您的理解是错误的。那不是语言的保证。这是编译器可以选择进行或不进行的优化。

它不是存储在内存中的a,a + 1,a + 2 ..... a + 12地址之间,还是存储在内存中的b,b + 1,b + 2 ... b + 12之间(12是sizeof串)?

我不明白这个问题。什么不被存储?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何找到字符串中的IP地址

来自分类Dev

字符串文字和数组的地址

来自分类Dev

C中字符串文字的地址

来自分类Dev

字符串地址

来自分类Dev

如何快速找到匹配的字符串?

来自分类Dev

python如何找到字符串的结尾?

来自分类Dev

如何找到子字符串的索引?

来自分类Dev

python如何找到字符串的结尾?

来自分类Dev

如何将字符串文字与4的倍数的地址对齐?

来自分类Dev

跨翻译单元的字符串文字地址

来自分类Dev

带地址运算符的printf字符串文字

来自分类Dev

将字符串文字地址分配给指针

来自分类Dev

如何返回字符串的地址(作为字符指针)

来自分类Dev

Scala REPL:错误:“;” 预期但找到字符串文字

来自分类Dev

如何在字符串中找到字符“ \”?

来自分类Dev

在C语言中,如何找到字符串中的'\'字符?

来自分类Dev

如何在字符串中的字符之前找到单词

来自分类Dev

如何找到字符串中连续字符的交点?

来自分类Dev

如何找到字符串中字符的索引?

来自分类Dev

如何找到字符串中的特殊字符并替换它们

来自分类Dev

如何在字符串中找到转义字符\?

来自分类Dev

如何从描述地址的字符串访问对象子级

来自分类Dev

如何使用重载字符串检索对象的数字地址

来自分类Dev

如何打印出C字符串的内存地址?

来自分类Dev

如何从字符串中提取IP地址

来自分类Dev

如何从char *而不是地址获取字符串的值

来自分类Dev

如何从字符串中提取地址成分?

来自分类Dev

如何剥离尾随字符串的IP地址

来自分类Dev

如何将字符串转换为IP地址?