您的位置:首页 > 编程语言 > C语言/C++

谈c++ 和 c#关于字符串和其它类型的相加操作

2014-02-17 01:01 309 查看
大家都比较熟悉字符串相加操作,一般有这么几种情况:

1. 当两个字符串直接相加的时候,c#中通过建立中间临时对象,最终创建一个新的字符串,其值就是两个字符串的连接。

例如:在c#中,string str = “a" + "example" ;在c++,也是同样道理,字符串的相加操作。

2.当字符串和整型或者布尔类型相加。在c#中,我们知道每种类型就继承自object,而object都默认实现了toString()方法,这样当我么执行一个字符串和一个整型,或者其他非字符串类型的加法时,编译器会自动调用该对象的toString()方法,将其转换为字符串,然后执行两个字符串的加法。

但在c++中,当你直接把字符串和整型相加的时候,并不是上述结果。

例子:cout<<"test" + 3<<endl;

你们认为结果是什么呢?哈哈,肯定会令你吃惊。其实这个语句执行的是指针操作,相当于 headPointer + 3;这样的话,结果就是“t”。当数字过大而超越字符串的长度,这时候字符串就为空了。其实这个很简单,只是我们平时并没有注意。

希望这个对大家以后有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: