繁体   English   中英

以下C程序的输出将如何?

[英]What will be the output of following C program and how?

输出是什么? 我对\\\\感到困惑。 它是如何工作的?

#include <stdio.h>
void main(){
    printf("\\nab");
    printf("\\bsi");
    printf("\\rha");
}

输出将是\\nag\\bsi\\rha 字符串"\\\\"转换为文字"\\"

这是因为\\n换行,并且单个char \\还有其他用途。 如果这种方式行不通,将无法打印文字\\n

答案将是:

\nab\bsi\rha

1-三个文本一起打印,因为您正在使用不带转义符\\n printf ,如果您改为使用

...
printf("\\nab\n");
printf("\\bsi\n");
printf("\\rha\n");
...

你会得到

\nab
\bsi
\rha

在第一个打印中,您正在编写\\n ,这表示换行,但是您声明了两个斜杠,这些斜杠表示要按原样打印单个斜杠(在C中要打印斜杠,必须使用\\\\(两个),因为假装单个斜杠用于特殊转义字符,例如\\ n)。

尝试用它执行原始文件,以了解主要区别:

#include <stdio.h>

void main()
{
  printf("\nab\n");     /* Note that I am using a escape character \n to make a new line after each print */
  printf("\bsi\n");
  printf("\rha\n");
}

基本上,如果在特殊字符之前使用此\\ ,则称为转义文字。 这是在其前面删除特殊字符的功能。 例如:如果要在输出中打印此行: Hi this, ", is a quote symbol 。您可以将其写为: printf("Hi this, \\", is a quote");

同样,对于转义序列,例如\\ n \\ t \\ b,要从中删除特殊字符\\则需要转义文字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM