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

来源:互联网 发布:美工提升学历 编辑:程序博客网 时间:2024/05/16 06:42

大家都比较熟悉字符串相加操作,一般有这么几种情况:

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

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

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

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

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

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

希望这个对大家以后有所帮助。

 

 

原创粉丝点击