为什么 cout 使用 << 会产生正确的字符串输出,但使用 + 却不会? [关闭]

2024-01-08

这显示没有输出:

int x = 10;
cout<<"Hello C++ " + x ;

但这确实显示了输出:

int x = 10;
cout<<"Hello C++ ";
cout<<x<<endl;

问题是什么?它们看起来完全一样。

顺便说一句,我在 Visual Studio 2010 上使用 Visual C++ 6.0 。


因为这不是如何使用流或字符串。

The +运算符用于:

  1. 将两个数字相加,或者
  2. 连接两个std::string在一起。

这里有一个字符串文字和一个数字。这+运算符与这些不兼容。

(你实际上最终做的是“添加”10指向表示字符串文字的指针;碰巧,因为您的字符串有十个字符长,所以指针恰好位于字符串文字的 NULL 终止符所在的位置,所以这就像尝试打印"".)

正如您通过第二个示例发现的那样,正确的方法是使用流的<<再次操作员。

cout << "Hello C++ " << x;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 cout 使用 << 会产生正确的字符串输出,但使用 + 却不会? [关闭] 的相关文章

随机推荐