网站大量收购独家精品文档,联系QQ:2885784924

char与string区别.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
这一篇要讲一个非常重要的话题: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 HYPERLINK /2009_09_19/1253353693_ddvip_9431.png \t _blank   图片看不清楚?请点击这里查看原图(大图)。  HYPERLINK /2009_09_19/1253353693_ddvip_1719.png \t _blank   图片看不清楚?请点击这里查看原图(大图)。    这也就是我们经常说的,字符对应的编码:大写A编号为65,小写a编号为97   相关知识:在Excel中,可以通过Char函数根据一个数字返回字符,通过Code函数返回某个字符对应的编码,如下 双击代码全选 1 2 3 4 =CHAR(97)  会返回“a  =CHAR(98)  会返回“b  =CHAR(99)  会返回“c  =CHAR(100)  会返回“d    以此类推。   反向返回 双击代码全选 1 2 3 4 =Code(“a)  会返回“97  =Code(“b)  会返回“98  =Code(“c)  会返回“99  =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   数据类型用于存放二进制数据。    注意       Byte   数据类型可以转换为   Short、Integer、Long、Single、Double   或   Decimal   数据类型,而不会出现   System.OverflowException   错误。    2、Char   变量以无符号的   16   位(2   个字节)数字的形式存储,取值范围为   0   到   65535。每个数字代表一个   Unicode   字符。不能直接在   Char   数据类型和数值类型之间进行转换,但可以使用   AscW   和   ChrW   函数来完成。   相关知识:SQL Server中类似整数类型的联想   我又联想到在SQL Server中几个特殊的数据类型 bit 取值:0,1 tinyint 取值:0~255。相当于C++中的unsigned char,或者C#中的byte smallint 取值:-32768~32767。其实相当于C

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档