我已经阅读了许多文章,为什么两个字符串文字不能在C++等中添加,并且运算符+支持将字符串文字添加到整数。连接两个字符串
不过,我想了解在下面的代码编译器错误:
string str1, str2, str3;
int i = 10;
str1 = "Hello " + i;
str2 = i + "Mars";
str3 = "Hello " + i + "Mars";
初始化的str1
和str2
工作正常,但str3
建设提供了以下错误:
example.cpp: In function
int main()
:
example.cpp:20:27: error: invalid operands of typesconst char*
andconst char [5]
to binaryoperator+
Q1:在错误信息中,我明白const char [5]
指的是"Mars"
。 const char*
是指什么,整数i
转换为char *
后?
Q2:operator+
已从左向右关联,我猜的str3
建设可以写为:
str3 = ("Hello " + i) + "Mars";
是否("Hello " + i)
计算为char *
?
Q3:在下面的代码:
str5 = string("foo ") + "bar ";
str6 = string("foo ") + "bar " + i;
的str5
设置编译罚款,但str6
生成错误消息的负载(页半)。 string("foo ") + "bar "
的结果如何?是"string"
?
在此先感谢您的任何见解。
您尝试添加一个字符串和一个整数。这是错误。考虑:http://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c – squiguy