2017-09-07 42 views
-1

輸出是什麼? 我很困惑的\\。它是如何工作的?以下C程序的輸出結果如何?

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

你試過編譯並執行它?在那種情況下,結果是什麼,你期望什麼? –

回答

1

輸出結果爲\nag\bsi\rha。 字符串"\\"轉換爲文字"\"

這是因爲\n象徵了一條新的線,並且單個字符\還有其他幾個用途。如果它不以這種方式工作,則將無法打印文字\n

1

答案將是:

\nab\bsi\rha 

1 - 三個文本打印在一起,因爲你正在使用printf沒有轉義字符\n,如果改用

... 
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"); 
} 
1

基本上,如果這個\之前特殊字符時,它被稱爲轉義文字。這是做什麼的,刪除它的正面的特殊字符的功能。例如: 例如:Incase要在輸出中打印此行:Hi this, ", is a quote symbol。您可以將它寫爲:printf("Hi this, \", is a quote");

對於轉義序列(例如\ n \ t \ b),類似地從中刪除特殊字符\將需要轉義字面量。