前者表示ascii编码是40的字符,后者编译错误。你要表示字符串请用双引号
表示一个字符串,其中结果为一个空格,然后是一个冒号;也就是说输出的时候
printf("\40:");
会在屏幕上输出一个空格,然后是一个冒号,原因是\40表示八进制数40对应的字符,而八进制的40表示十进制的32,而ASCII码为32的字符正好是空格
这是在C语言中包含有“转义字符”的一个字符串,共有两个字符,第一个是转义字符'\40',即ascii值为八进制40(十进制为32)的字符(就是一个英文空格),第二个字符就是后面的一个冒号':'。
转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
楼主请看最后两行,在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。
你说的\40,表示八进制的ascii码为40的字符,
请看
这个字符为 40 20 32 sp 也就是空格(space)符
"|"在c语言中是逻辑"或"的意思,即两个进行或运算的元素中,只要其中一个的值为真,结果就为真。
0x40和0x80的二进制表示分别为:1000000和10000000
执行"|"运算:
1000000
10000000
——————
11000000
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。