【发布时间】:2019-12-09 19:27:28
【问题描述】:
我正在研究 c++ 中的对象和类的概念,在这样做的同时,我注意到了一些关于连接的事情。
我只想澄清这背后发生的事情以及两者之间的区别。
我都试过了,似乎“+”在年龄部分上不能正常工作,它是一个整数,但在字符串上工作。
代码:
man.name = "john wick";
man.age = 32;
cout << "The man's name is: " << man.name << endl;
cout << "The man's age is: " << man.age << endl;
我使用 ' 得到的输出
The man's name is: john wick
The man's age is: 32
如果我在man.age中将'
我使用“+”得到的输出:
The man's name is: john wick
@@
【问题讨论】:
-
C++ 中没有字符串和整数的连接运算符。您无意中发现的是字符串文字上的 指针算术,在这里解释起来需要很长时间。查阅您最喜欢的 C++ 书籍。
-
@foreknownas_463035818 谢谢!我刚刚编辑了帖子,我之所以“站立”是因为我不小心在问题中包含了不相关的下一行代码。
-
@john 好的,谢谢!
-
您的代码显示
n is standing.与现在显示@@的原因相同。通过将32添加到The man's age is:(即const char *),您将该指针移动32,指向内存中的不同地址。在您对另一个 const 字符串的原始问题中,您在当前版本的问题中使用了以n is standing.结尾的其他地方,它是内存中存在@@后跟\0的位置。
标签: c++