c语言转义字符'\x'和'\X'有什么区别啊

比如说main()
{int a='\Xf';
printf("%d\n",a);
}
输出26200。
而main()
{int a='\xf';
printf("%d\n",a);
}
输出的是15

c语言转义字符'\x'和'\X'区别为:ASCII码值不同、表示不同。

一、ASCII码值不同

1、转义字符'\x':转义字符'\x'的ASCII码值为120。

2、转义字符'\X':转义字符'\X'的ASCII码值为88。

二、不同

1、转义字符'\x':转义字符'\x'表示后面的字符是十六进制数

2、转义字符'\X':转义字符'\X'表示的是大写字母X。

扩展资料:

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-25

C中的十六进制ASCII码换码序列的引导符是'\x'而不是'\X',所以谈不上它们有什么区别。下面的代码可以验证:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    printf("%c %c\n",'\x04E','\X04E');
    return 0;
}

输出是N E。这表明系统只认\x而不认\X,所以前者输出了对应字符N,后者被截断为E。

第2个回答  推荐于2017-10-01
如果想用转义字符用十六进制表示应使用'\x12'这样的形式,注意应该是小写x,不是大写的X

为什么会输出26200转化成十六进制是66 58 而字符'f'和'X'的ASCII码值用十六进制表示就是66和58

至于为什么是6658而不是5866,因为lz的编译器是针对大端模式的追问

谢谢大神,在小小的问下:
main()
{int a=3,b=2,c=1,d;
d=cb>c;
printf("%d\n",d);
}
输出的0
这是为什么啊????

追答

cb>c
(3>2)>1
即1>1,显然为假,值为0

本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网