关于C语言的转义字符\用法和\\和\\n用法
如题,为啥第一个printf(" / \\n");不会换行,求解~#include <stdio.h>
int main()
{
printf(" / \\n");
printf(" 123\n");
printf(" 123");
return 0;
} 本帖最后由 sunrise085 于 2020-9-25 16:26 编辑
C语言中,字符串内的反斜杠是转义字符,能转义的都会进行转义
你的第五行,第一个反斜杠把第二个反斜杠转义了,最后的字母n就是单纯的字母了。"\\"意思就是输出反斜杠
给你一个C语言转义字符表看看,注意:后面两个表示的是ASCII码值对应的字符,例如,\101和\x41表示的都是字母A
\\n 表示输出 \n 而不是换行
\\表示的其实是\
\n表示的是换行
所以\\n表示的就是字符\和字符n
如果只有一个\,编译的时候会报错“unknown escape sequence: '\/'”
printf("////\\\n");实现的打印效果就是////\+换行 liuzhengyuan 发表于 2020-9-25 16:07
\\n 表示输出 \n 而不是换行
是的,学会了
sunrise085 发表于 2020-9-25 16:14
C语言中,字符串内的反斜杠是转义字符,能转义的都会进行转义
你的第五行,第一个反斜杠把第二个反斜杠转 ...
恩,我试了下,确实\101和\x41都是表示的字母A,具体是什么原因呢,能否讲一下~
#include <stdio.h>
int main()
{
printf("\101\n");
printf("\x41\n");
printf(" 123\n");
printf(" 123");
return 0;
} wsq999 发表于 2020-9-25 16:31
恩,我试了下,确实\101和\x41都是表示的字母A,具体是什么原因呢,能否讲一下~
3楼中不是和你说了么。。
表中的后两个表示的是ASCII码值对应的字符
\101和\x41 表示的是ASCII码为65的字符即字母A,十进制的65表示成八进制为101,表示为十六进制为41
再不清楚的话去查查ASCII码表 sunrise085 发表于 2020-9-25 16:38
3楼中不是和你说了么。。
表中的后两个表示的是ASCII码值对应的字符
\101和\x41 表示的是ASCII码为65 ...
我懂你的意思,ASCII表中65表示的是字符A,所以10141是用不同的进制表示65,假如我想要用二进制和十进制表示65的话,应该怎么表示呢。代码如下
#include <stdio.h>
int main()
{
//ASCII码中的65表示字符A
printf("\101\n");//8进制101表示10进制65
printf("\x41\n");//16进制的41表示10进制65
printf("\65\n");
return 0;
} wsq999 发表于 2020-9-25 16:51
我懂你的意思,ASCII表中65表示的是字符A,所以10141是用不同的进制表示65,假如我想要用二进制和十进 ...
你想多了。没有这种表示方式,你认真看3楼的表了吗? sunrise085 发表于 2020-9-25 16:59
你想多了。没有这种表示方式,你认真看3楼的表了吗?
看了啊,我不明白为啥/直接写101就是8进制;/后面加一个x就是16进制。我记得以前学的用0H表示二进制的。
#include <stdio.h>
int main()
{
//ASCII码中的65表示字符A
printf("\101\n");//8进制101表示10进制65
printf("\x41\n");//16进制的41表示10进制65
return 0;
}
我按照表里面写\ddd和\xhh想要表达8进制或者16进制,会提示错误。
#include <stdio.h>
int main()
{
//ASCII码中的65表示字符A
printf("\ddd101\n");//8进制101表示10进制65
printf("\xhh41\n");//16进制的41表示10进制65
return 0;
}
wsq999 发表于 2020-9-25 17:15
看了啊,我不明白为啥/直接写101就是8进制;/后面加一个x就是16进制。我记得以前学的用0H表示二进制的 ...
{:5_104:}{:5_104:}
那个ddd表示十进制的三位数,第二栏中说明了这里写八进制数,也就是用0~7填充着三个d
下同。你的语文不咋样啊 懂了,自己sb了
页:
[1]