programing

왜 '?'와 '\?'는 C에서 같은 출력을 출력합니까?

yoursource 2022. 8. 14. 14:44
반응형

왜 '?'와 '\?'는 C에서 같은 출력을 출력합니까?

C에서는 왜 이 두 개의 코드 조각이 같은 출력을 제공합니까?

#include<stdio.h>

int main(void)
{
    const char c='\?';
    printf("%c",c);
}

그리고.

#include<stdio.h>

int main(void)
{
    const char c='?';
    printf("%c",c);
}

견적을 낼 때 백슬래시를 사용하는 것으로 알고 있습니다."또는'printfrackslash를 사용하면 컴파일러에 명백한 백슬래시가 발생하는데, 왜 이 백슬래시가 '?'에서 작동할까요?

\?에 완전히 동등한 이스케이프 시퀀스입니다.?, 및 삼각문자 이스케이프에 사용됩니다.

#include <stdio.h>
int main(void) {
    printf("%s %s", "??=", "?\?="); // output is # ??=
}

견적C11§ 6.4.4p4

큰따옴표"및 물음표?자체 또는 탈출 시퀀스로 나타낼있습니다.\"및 를 각각 사용하지만,....

강조점 내 것

그래서 탈출 시퀀스는\?와 동일하게 취급되다?.

왜냐면'\?'유효한 이스케이프 코드이며 물음표와 동일합니다.

를 정의할 때char또는string컴파일러는 백슬래시를 해석한다.char또는string탈출 시퀀스로요

**

the simple answer of your question is 
\? means ?. instead of using \? you can using ? .
\? is escape representation and ? is character representation means both are same.

당신이 더 쉽게 이해할 수 있도록 이미지를 연결했습니다.

**

"이 이미지에서 이미지를 보려면 여기를 클릭" -> 이스케이프 문자로 \?를 찾아야 합니다.

언급URL : https://stackoverflow.com/questions/50387852/why-do-and-give-the-same-output-in-c

반응형