[英]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.