转义字符
#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 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) ;
} c是16进制数\0xdd
页:
[1]