又明白ch="0xa5"在C怎么表达

纯净水o 2009-07-14 07:40:40
今天再看一个课程设计的资料是关于俄罗斯方块的
上面用ch[2]来表示一个方块
比如俄罗斯方块中的正方快
ch[0]="0xcc"ch[1]="0x0"来表示
我明白这个是16进制,但是前面的0x代表什么??x并不适于16进制里的东西啊
还有
main()
{
char ch='0xa5';
printf("%c",ch);
}
我试验了一下 输出的就是5啊 按照16进制来说a5是165啊 为什么输出5呢?
另外
main()
{
char ch="0xa5";
printf("%c",ch);
}
则就什么都不输出了,有谁能讲解一下
...全文
199 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
java1109 2009-07-17
  • 打赏
  • 举报
回复
我看错了
对不起,楼主!!!
shuizhiyun 2009-07-15
  • 打赏
  • 举报
回复
你把一个字符串赋值给一个字符了,编译器会把字符串中的最后一个字符赋值给它,前面的字符忽略掉了
shuizhiyun 2009-07-15
  • 打赏
  • 举报
回复
main()
{
char ch='0xa5'; //实际上是四个字符,最后一个字符是'5',ch取最后一个字符
printf("%c",ch);
}

main()
{
char ch="0xa5";//实际上是五个字符,最后一个字符是字符串结束符'\0',因此输出的结果你看不见
printf("%c",ch);
}
acdbxzyw 2009-07-14
  • 打赏
  • 举报
回复
'0xa5'不是十六进制的数,0xa5 才是

char c = '0xa5',我估计就是取的最后一个字符当成c,你可以把5换成任意字符,输出的是此任意字符

char c = "0xa5"是错误的表达,等号右边是字符串。字符和字符串(字符数组)不能匹配。
ltmit 2009-07-14
  • 打赏
  • 举报
回复
去掉引号试试
java1109 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 xuminghui382 的帖子:]

main()
{
char ch='0xa5';
printf("%c",ch);
}
我试验了一下 输出的就是5啊 按照16进制来说a5是165啊 为什么输出5呢?
另外
main()
{
char ch="0xa5";
printf("%c",ch);
}
[/Quote]
0x后面跟着的才是十六进制的数字,
另外楼主的这两段程序怎么得出不同的结果呢?

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧