比较字符串的时候发现如果两个字符串相等,另一个字符串结尾再加上\0就不相等了,本来以为是比较到两个其中一个结束或遇到\0停止。
string 不是简单的对char* 的封装,str1==str2调用的是operator==
str1 在加了\0 后,你会发现他的size将会增大。
而string.operator== 首先会判断二者的size是否一样?如果不一样返回false
s1==s2比较的是字符串的地址
你想根据内容比较是否相等,应该用strcmp函数来比较
当你用"123"来给两个字符串赋值的时候,由于字符串在内存中是唯一的,所以s1和s2指向的是同一个地址
而你定义两个字符数组的时候,即使它们内容相等,但是地址是不同的