- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
*看看字符数据在内存中是如何存放的将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。存放的是ASCII码代码。刚才我们也讲过了,一个字符变量内存中存放的是字符所对应的ASCII吗代码。例子,我们首先定义了两个变量c1,c2;,用字符常量给c1,c2赋值,其实c1,c2中存放的是字符的ASCII码,即97和98。然后输出c1,c2,这个格式说明符,这表示将后面的项以字符的形式输出。毫无疑问,输出的结果应该是ab同样,使
c1=97;
c2=98;然后以字符形式输出,结果还是一样的。下面我们看看c1,c2在内存中是如何存放的。c1我们给它赋了个a,不论给它赋a还是97,其实在内存中都是在c1对应的内存空间中存了一个十进制的97,换成2进制,就是这么一串东西,在内存里就存了这一串。那么c2。关于输出语句后面我们再详细讲。这里大家要搞清楚,对于字符型的一个量,在内存中存放的是这个字符的所对应的ASII码,其实就是一个整型树。*前面我们看了存放的是字符的ASCII码下面我们看,对于字符数据和整型数据,可以相互赋值,这也是C语言的一个特色因为我们讲了,字符数据存放的是其ASCII码,ASC码就是0~255的一个整型数,所以字符数据可以和整数进行相互赋值。字符数据可以以字符的形式输出,也可以用整型数形式输出。在C语言中整型数和字符数是互换的。下面看个例子。定义了整型变量i,字符变量c.然后将字符常量赋值给整型变量i,可不可以呢?刚才我们讲到“字符数据和整型数据可以相互赋值”,所以这里没有问题。其实这个i里面存的是97.然后将整数97赋值给c,c在内存中存放的是97,与i相同。然后输出,我输出c两次,一次是以字符的形式输出,一次是以十进制数的形式输出。输出的结果应该是多少呢?A97I也输出两次,一次是以字符的形式输出,一次是以十进制数的形式输出。输出的结果应该是多少呢?A97注意:VC把字符处理成带符号的整数,即它把最高为看作是符号位再看3.61。=‘\376’;是一个转移字符,376是一个八进制数,对应于十进制数254。当以字符形式输出时,输出ASCII码值为254的字符,没有问题。当以十进制的形式输出时,由于VC将字符看作是一个有符号整数。因此将最高位看作一个符号位,因此输出一个负数。这个负数为多少呢?前面讲过,数据在内存中是以补码的形式存在的。求得这个数的补码为2,加上符号位为-2/可以用unsignedchar修改*下面看字符串字符串常量:用一对双引号括起来的字符序列,即多个字符。下面回顾字符常量是什么形式的,是由单引号括起来的一个字符。只要是可印刷的内容都可以作为字符串的内容“a”与‘a’不同,‘a’为字符常量,”a”为字符串常量每个字符串都有一个结束标记’\0’,它身干什么的呢?字符常量是一个字符序列,这个字符序列究竟在哪里结束呢,当系统扫描到’\0’时,就认为前面若干个字符为一个字符串。’\0’不是字符串内容,是系统自动加上去的,是为了系统自己方便判断这个字符串到哪里为止.如”CHINA”在内存中为刚才讲“a”与‘a’不同*什么叫变量赋初值呢?在变量定义的同时设置初值,也称为初始化怎么定义变量,我们前面讲过了前面是类型说明符,后面是标志符。变量赋初值就是在定义变量的同时给它赋予一个值。如inta,b,c=5;定义了三个变量a,b,c,同时给c赋初值5,ab的值是多少呢,不知道。一个变量你没有给它复制,它的值是随机的,不确定的。inta=3,b=3,c=3;不能写成不能写成∶inta=b=c3;你要初始化,就要一个一个的符,不能省事。再强调一下,一个变量,你没有给他复制,它的值是不确定的。*刚才我们讲了,整型数就有6类,实型数又有两类,还有字符型数据,这些数据之间能不能混合运算呢?答案是肯定的。如如:10+’a’+12.3-3.14*’x’是合法的混合运算怎么运算呢?有个运算规则。运算时不同类型的数据要先转换成同一类型,然后进行运算。现转换后运算。其转换规则是这样的。将所有的float数据都转化为double,将char,short类型都转化为int,如果既有int,又有long,double,它们就都转化为long。总之,要把所有的数据都转化为表达式中的最高级类型。如10+’a’+12.3-3.14*’x’,它是一边运算一遍转化。首先是进行乘法运算,3.14是double型,’x’为字符型,则’x’首先转化为double型。然后是进行10+’a’,首先将’a’转化为整型97。然
文档评论(0)