簡體   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