2017-09-07 26 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

- 세 가지 텍스트가 함께 인쇄됩니다 당신은 이스케이프 문자 \n없이 printf을 사용하고 있기 때문에, 당신은

를 얻을 것이다 대신

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

를 사용하는 경우

\nab 
\bsi 
\rha 

처음 인쇄 할 때 01을 쓰고 있습니다.이것은 새로운 줄을 의미하지만, '있는 그대로'의 단일 슬래시를 나타내는 두 개의 슬래시를 선언하고 있습니다 (C에서는 슬래시를 인쇄하려면 \\ (2)를 사용해야합니다. 단일 슬래시가 \ 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

기본적으로, 그것은 문자 그대로 탈출라고합니다. 이것이하는 일은 특수 문자의 기능을 그 바로 앞에서 제거하는 것입니다. 예 : 출력에이 줄을 인쇄하려는 경우 : Hi this, ", is a quote symbol. printf("Hi this, \", is a quote");

마찬가지로 \ n \ t \ b와 같은 이스케이프 시퀀스의 경우 특수 문자 \을 제거하려면 이스케이프 리터럴이 필요합니다.