首页杂谈正文

char和string的区别

朱绪2016-10-286449Java

引言:char是字符类型,string是字符串类型,虽然仅仅只差一个字,但本质上差别还是蛮大的。

char:在C#里它属于Value Type(值类型),char类型的长度是固定的,在C++里它可能是1字节也可能是2字节,这取决于是不是Unicode Char,而在C#里,它永远是2个字节。

PS:在C++里char属于基础类型。

string:在C#中它属于Reference Type(引用类型),string的长度是没法明确取得的,即没有法子通过sizeof来取得,因为它根本就不是一个基础类型,本身无固定的长度,而取决于内部包含的字符。

PS:在C++里string是一个模板类型,也就是个class。

来个例子吧:

1、string类型:要用双引号,比如:"我是一个帅哥"。

帅哥

2、char类型:这就要用单引号了,比如:'李'、'L'。如果想表示多个字符咋办啊?那就用char[],也就是数组来表示。

总结一下吧:当我们要存一个串,但又不晓得其他需要多少内存的时候,就用string吧,更合适。当我们知道存储的内存的时候,可以用char。

已知大小的情况下用char可以提高效率减少内存的占用。

在不知道长度,并且总体上不会占用太多内存、对效率要求不高或者没限制内存和效率的情况下使用string。