为了账号安全,请及时绑定邮箱和手机立即绑定

字符串文字的大小

字符串文字的大小

C++
翻过高山走不出你 2019-10-19 16:35:31
以下代码#include <iostream>    using namespace std;int main(){    const char* const foo = "f";    const char bar[] = "b";    cout << "sizeof(string literal) = " << sizeof( "f" ) << endl;    cout << "sizeof(const char* const) = " << sizeof( foo ) << endl;    cout << "sizeof(const char[]) = " << sizeof( bar ) << endl;}输出sizeof(string literal) = 2sizeof(const char* const) = 4sizeof(const char[]) = 2在使用GCC编译的32位操作系统上。为什么要sizeof计算字符串文字的长度(所需的空间)?给予时,字符串文字是否具有不同的类型(与char *或char []不同)sizeof?
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

sizeof返回其操作数的字节大小。这应该回答问题编号1 ;;)而且,当传递给时,字符串文字的类型为“数组为n const char” sizeof

您的测试用例,一一列出:

  • "f"是由两个字符组成的字符串文字,该字符f和终止NUL。

  • foo 是一个指针(编辑:不考虑限定词),并且指针在您的系统上似乎是4个字节长。

  • 对于bar情况与相同"f"

希望能有所帮助。


查看完整回答
反对 回复 2019-10-19
  • 2 回答
  • 0 关注
  • 366 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信