C语言中0x88能算的上是一个字符吗?小弟初学C语言不太懂..谢谢各位大侠啊
答案:3 悬赏:40 手机版
解决时间 2021-03-24 22:19
- 提问者网友:萌卜娃娃
- 2021-03-24 08:57
C语言中0x88能算的上是一个字符吗?小弟初学C语言不太懂..谢谢各位大侠啊
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-03-24 09:36
1、16进制数字0x88可以表示一个字符。
2、0x88不在标准ASCII字符集中,它在扩展的ASCII集中,所以用char类型存储和表示可能会有一些问题(例如有可能会截断)
3、可以直接用0x88向字符变量赋值,不过会有警告信息,通常是用转义字符来完成这个工作,例如:box[0]='\x88';其中的'\x88'是转义字符,表示把十六进制数字88表示的字符赋值给box[0]
2、0x88不在标准ASCII字符集中,它在扩展的ASCII集中,所以用char类型存储和表示可能会有一些问题(例如有可能会截断)
3、可以直接用0x88向字符变量赋值,不过会有警告信息,通常是用转义字符来完成这个工作,例如:box[0]='\x88';其中的'\x88'是转义字符,表示把十六进制数字88表示的字符赋值给box[0]
全部回答
- 1楼网友:独钓一江月
- 2021-03-24 11:15
算是一个字符,必须 能是一个字符,如果不行,有时候可能是编译器的版本问题
- 2楼网友:像个废品
- 2021-03-24 10:21
不能,你可以运行一下以下代码试试
#include
void main()
{
char ch;
ch=0x88;
printf("%c",ch);
}
它会提示你:truncation from 'const int' to 'char',意思是不能从'const int' 到'char'赋值,0x88是一个十六进制数,不能赋值给char类型,但88却能,88是十进制数,88可以代表一个ascall码,一个ascall码对应一个字符,字符对应的ascall码只能是十进制,所以十六进制的0x88不能表示字符。追问谢了,那书上不就错了.还什么清华大学出版社.....
最后问一下TURBOC C2.0里面能这样表达吗?追答没用过,你试试吧
#include
void main()
{
char ch;
ch=0x88;
printf("%c",ch);
}
它会提示你:truncation from 'const int' to 'char',意思是不能从'const int' 到'char'赋值,0x88是一个十六进制数,不能赋值给char类型,但88却能,88是十进制数,88可以代表一个ascall码,一个ascall码对应一个字符,字符对应的ascall码只能是十进制,所以十六进制的0x88不能表示字符。追问谢了,那书上不就错了.还什么清华大学出版社.....
最后问一下TURBOC C2.0里面能这样表达吗?追答没用过,你试试吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯