h-b-z-d-j-s-m 发表于 2022-10-4 15:31:59

转义字符

#include<stdio.h>
int main()
{
char a,b,c,*d;
a='\';   
b=‘\xbc';
c="\0xab";
d="\0127";
printf("%c %c %c %c\n",a,b,c,*d);
d是转义字符还是字符串啊,转义字符八进制不是只可以\d,\dd,\ddd吗,不可以\dddd吧?
a,b,c又是为什么

jackz007 发表于 2022-10-4 15:55:06

本帖最后由 jackz007 于 2022-10-4 16:02 编辑

      char a,b,c,*d;// d 被定义成 char * d 是指针,和 char 无关
      a ='\'       ;// 无效的赋值,无法编译         
      b ='\xbc'    ;// 有效的写法是 b = \xbc , 没有引号,xbc 是十六进制的 0xbc,对应的十进制数是 188
      c ="\0xab"   ;// 有效的写法是 c = \xab , 没有引号,xab 是十六进制的 0xab,对应的十进制数是 171
      d="\0127"    ;// 有效的写法是 d = \127 , 没有引号,127 是八进制数 127(8),对应的十进制数是 87
      修改后的版本
#include<stdio.h>

int main()
{
      char a , b , c , d                      ;
      a = '\\'                              ;
      b = \xbc                              ; // 十六进制在 '\x' 后面应该是 2 个数字
      c = \071                              ; // 八进制在 '\' 后面应该是 3 个数字
      d = \127                              ; // 八进制在 '\' 后面应该是 3 个数字
      printf("%c %c %c %c\n" , a , b , c , d) ;
}

泌阳 发表于 2022-10-10 20:38:12

c是16进制数\0xdd
页: [1]
查看完整版本: 转义字符