char a[] = "\061\n";
printf("a = %s", a);// 输出1
char a1[] = "\61"; // 8进制的转义字符,"\061"和"\61"是相同的,"0"可以忽略
printf("a1 = %s\n", a1);// 输出1
char a2[] = "\06154";// 8进制的转义字符,自动截断前3位数字,输出结果为“1”+“54”;
printf("a2 = %s\n", a2);// 输出154
char b[] = "\0961"; // 8进制的转义字符,当数字大于进制位的上限时,编译器自动截断,以‘\0’+“961\n”,字符串遇到'\0',结束。
printf("b = %s\n", b);
char b1[] = "\961"; // 编译会弹出警告, warning C4129: “9”: 不可识别的字符转义序列,执行结果为:961
printf("b1 = %s\n", b1);
char c[] = "\377"; // ASCII一般大小范围为0~255,当输入的值大于255时,会编译出错,8进制的377 = 255.所以最大到377,当为400时,报错
printf("c = %s\n", c);
char d[] = "\x30";
printf("d = %s\n", d);// 16进制30对应的ASCII是“1”
char d1[] = "\xff";// ASCII一般大小范围为0~255,当输入的值大于255时,会编译出错,16进制的FF = 255.所以最大到ff,当为100时,报错
printf("d1 = %s\n", d1);