C 中数组与字符串的指针的大小
size of pointer to array vs string in C++
string a= "Stack Overflow";
char b[]= "Stack Overflow";
cout<<sizeof(a)<<","<<sizeof(b)<<endl;
以上代码的输出为4,15
由于" A"指向字符串,因此它具有我的机器上字符串的尺寸4。
'b'也是指向字符串的指针,但是为什么它的大小为15(即sizeof(" stack溢出"))?
自" A"指向字符串,它具有我的机器上字符串的尺寸4。
不是完全。
a
是字符串。这不是指针,因此,没有指向字符串。在您的设置上的string
实现是使sizeof(string)
为4。
'b'也是指向字符串的指针,但是为什么它的大小为15(即sizeof(" stack Overflow"))?
不正确。
b
不是字符串的指针。它是char
的数组。线
char b[]= "Stack Overflow";
等效于:
char b[15]= "Stack Overflow";
编译器推论数组的大小并创建正确大小的数组。
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 使用指针初始化 char 数组或字符串 C++
- 指针保留字符串
- Visual c ++,使用字符串引用/指针调用 dll 函数
- strcpy 在类中无法使用字符串指针
- C++为 void 指针分配一个字符串
- OpenGL 统一名称指针作为字符串
- 如何将字符串指针数组转换为字符串类型的智能指针向量?
- 转换指针引用的字符串
- 未分配释放C++(C 字符串)指针
- 为什么 C 样式字符串的工作空指针检查不?
- 为什么多维数组中的空字符串文本衰减为空指针?
- 使用终止程序的指针在数组中输入字符串
- 将指针作为缓冲区传递到第一个字符串元素
- 指针 - 字符串C
- C++:更改指针字符串的值
- 使用带字符指针字符串的基于范围的For循环
- 转换/解析指针字符串和双精度
- 有问题分配字符串指针字符串值