char和string区别 下载本文

这一篇要讲一个非常重要的话题:char类型与string类型的区别。从字面上说,他们是有区别的

1. char是字符类型 2. string是字符串类型

虽然一字之差,但其本质是很大的。

1. char属于基础类型(C++),在C#中它属于值类型(Value Type)。char类型的长度是固定的,上一篇讲到,在C++中它可能是1个字节,或者2个字节(取决于是否为Unicode Char),而在C#中,它永远是2个字节。

2. string是一个模板类型,也就是一个class(C++)。在C#中它属于引用类型(Reference Type)。string的长度是无法明确取得的。也就是无法通过sizeof来取得,因为它不是一个基础类型,它本身并不固定长度,而取决于内部包含的字符。 说完了本质区别,我们再来看一下从用户角度来看 1. char类型:用单引号,例如:?陈?,?A?

要表示多个字符怎么办?那么就用char[],也就是数组

【注意】如果在C++中,将?陈?赋值给一个char类型,而不是wchar_t类型,会有问题,因为汉字是两个字节的,char是一个字节的。 2.string类型:用双引号,例如:”我是陈希章” 除此之外,还有一些很重要的区别

1. char类型虽然听起来是字符类型,但其他它可以隐式地转换为包括short, int,long等整数类型。为什么这么说呢?我们不是说了它要么占1个字节,要么占2个字节吗? 下面来看一个例子,如何对Char转换为short,以及如何从short转换为Char

图片看不清楚?请点击这里查看原图(大图)。

图片看不清楚?请点击这里查看原图(大图)。

这也就是我们经常说的,字符对应的编码:大写A编号为65,小写a编号为97 相关知识:在Excel中,可以通过Char函数根据一个数字返回字符,通过Code函数返回某个字符对应的编码,如下

双击代码全选

1 =CHAR(97)

会返回“a\

2 =CHAR(98) 会返回“b\ 3 =CHAR(99) 会返回“c\ 4 =CHAR(100) 会返回“d\

以此类推。 反向返回

双击代码全选

1 =Code(“a\

会返回“97\ 2 =Code(“b\ 会返回“98\ 3 =Code(“c\ 会返回“99\ 4 =Code(“d\ 会返回“100\

2. char类型既然是一个基础类型,它有signed char和unsigned char的区分 signed char 有符号的char,取值范围是-128到127 unsigned char 无符号的char,取值范围是0到255 你可能会问,一个字符跟符号有什么关系呢?

没错,字符是没有关系。但你要知道,char类型可以用来表示整数的。既然是可以用来表示整数,就有正负之分了。例如,我们要表示一个整数,它的取值范围比较小,不会超过255.那么此时,我们就可以直接用unsigned char,而不必用short(2个字节),更没有必要用int(4个字节)了

但是,到了C#里面,所有的char都是无符号的

1、Byte 变量以无符号的 8 位(1 个字节)数字的形式存储,取值范围为 0 到 255。

Byte 数据类型用于存放二进制数据。