这个程序的运行结果怎么者么奇怪

[复制链接]
查看11 | 回复4 | 2008-3-20 22:50:16 | 显示全部楼层 |阅读模式
为什么会奇怪啊?%c是以ASC码值的形式输出%d是以十进制的形式输出
回复

使用道具 举报

千问 | 2008-3-20 22:50:16 | 显示全部楼层
C系列中,char和int是隐式转换的,就是说用int型输出char型数据,就可以输出它的ASCII码值。
回复

使用道具 举报

千问 | 2008-3-20 22:50:16 | 显示全部楼层
赋值应该用单引号,因为不是字符串,%c是以ASC码值的形式输出的字符 %d是以十进制的形式输出的数字
回复

使用道具 举报

千问 | 2008-3-20 22:50:16 | 显示全部楼层
#includemain() { char c1,c2; c1="A";c2="a"; printf("c1=%c\tc2=%c\n",c1,c2); /*输出的是字符*/printf("c1=%d\tc2=%d\n",c1,c2); /*输出的是ASCII码*/}答案是:c1=A
c2=a c1=65
c2=97
回复

使用道具 举报

千问 | 2008-3-20 22:50:16 | 显示全部楼层
C 中,字符是以ASC2码的形式来存储的,而ASC码本身是0到255的整数,也就是是字符型变量占的一个字节长度。通过一定的规范约定,来代表256个常用字符。其中,A对应65,a对应97,0对应48等,连续的字母或数字则在上面的基础上递增,其中特别要注意的是字母大写的码值比小写的小。当一字符以c%输出的时候,系统给出字符本身,若以d%输出,则输出对应的码值,所以,假设有a,以c%输出的是a本身,以d%输出的是a的码值97。希望对你有所帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行