使用 cout 打印 size_t 给出了不可思议的输出

Printing size_t using cout gives uncanny output

我正在尝试使用 cout 打印 size_t 值。这是我的代码

#include <iostream>
using namespace std;
int main() {
  size_t blah = 15;
  cout << blah +" gibberish";
  return 0;
}

我得到的输出是这样的:D.

感谢您的帮助! :)

*我正在尝试使用 this 打印内存使用情况。
*另外,size_t的单位是什么?
*我尝试发布 cout<<blah +" bytes";,它给我一个电话 Unicode 表情符号(U+0007 : BELL [BEL])作为输出,但 Whosebug 拒绝显示它。

blah +" bytes" 正在给一个指针(由char 的数组转换而来)添加一个整数,所以指针被移到了无效的地方。

你应该做

#include <iostream>
using namespace std;
int main() {
  size_t blah = 15;
  cout << blah << " bytes";
  return 0;
}

相反。 (使用 << 而不是 +:打印数字和字符串 one-by-one 而不是尝试事先连接它们)