C++ 字符串到字符串的转换

标签 c++ c arrays string initialization

char ch[3];
strcpy(ch,"Hello");
cout<<ch<<" "<<sizeof(ch);

Q1。为什么当 ch 的大小为 3 时打印“Hello”?

Q2。如果 ch 从 ch[2] 转换为 ch[6](通过隐式类型转换),那么为什么 sizeof(ch) 仍然是 3?

最佳答案

strcpy 不做大小检查,所以它只是在 a 的内存地址写入“Hello\0”,覆盖内存中位于 a 之后的任何内容。

没有执行任何转换,ch 是 char[3],就像在 strcpy 之前一样。

关于C++ 字符串到字符串的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22387179/

相关文章:

c++ - 通过引用和内联返回文字

c++ - 在多个线程中使用 std::cout

c - 如何在没有无限循环的情况下获得 N 个唯一的随机量?

c - 跨线程释放内存

javascript - 如何将值传递给 Node 中的数组

javascript - 从一个 Array 对象中提取键值,并使用带有下划线 javascript 的提取值从其他对象中过滤

c++ - 数组仅在第一次返回错误值

c - 从哈希表 C 中获取链表

javascript - 在 PHP 中以数组形式访问无序列表 id 的最简单方法

C++ fstream 变量