백 슬래시 \
은 문자가 A
이고 쉼표가 ,
이고 숫자가 4
인 문자입니다. 일부 프로그래밍 언어, 특히 C와 그 자손 (및 조상)은 문자열이나 문자 리터럴 내에서 다른 문자를 이스케이프 처리하는 데 사용됩니다. 예를 들어, '\a'
은 벨 문자를 나타내며 인쇄 할 경우 컴퓨터에서 경고음을냅니다 (printf("%c", '\a')
).
C 언어 이스케이프 문자로 컴파일러가 허용하는 대부분 인간의 구조이므로 사람이 벨 문자 등을 표현할 수 있습니다. 컴파일 된 코드는 단순히 문자를 저장합니다. 값이 7 인 바이트입니다. 그냥 명확하게 말하면 이 아니고이 \
이고 그 뒤에 a
이옵니다.
다른 컨텍스트에서 백 슬래시는 런타임에 프로그램에 무엇인가 의미합니다. 가장 잘 알려진 인스턴스는 정규 표현식 문법입니다. 백 슬래시는 다른 문자를 이스케이프 처리하여 특별한 의미를 부여하거나 특별한 의미를 없애줍니다. 예를 들어, grep '\<foo\>' file.txt
은 file.txt에 단어 foo가있는 행을 찾습니다. 이 경우 백 슬래시는 실제로 런타임에 있으며 프로그램에 따라 뒤 따르는 <
및 >
에 대한 이스케이프로 해석됩니다. 이 경우 \<
및 \>
은 문자를 전혀 나타내지 않습니다. 단어의 시작과 끝에 대해 각각 너비가 0 인 일치를 나타냅니다.
안녕하세요, 마르셀로, 자세한 답변을 부탁드립니다. 한 가지, 문자열 처리와 같은 c 프로그램을 만들 때 우리는 인간으로서 프로그램에서 "\ 0"을 사용하여 문자열의 끝으로 작업을 표현합니다. 그렇다면 컴파일러는 무엇을합니까? "\"가 저장되어 있습니까? 아니면 다음 문자가 "0"입니까 (예에서는 "a"입니까?)? 그런 다음 프로그램이 실행될 때 코드가이 저장된 값으로 어떻게 응답하거나 진행합니까? – pepero
@pepero : \ 0으로 문자열을 끝내는 경우, 값은 0 (비트가 설정되지 않음) 인 바이트입니다. 이것은 문자열의 끝을 찾는 데 사용되는 또 다른 C 변환입니다. – BCS
@pepero : 편집 된 답변을 저장하기 전에 귀하가 귀하의 의견을 남겼습니다. 두 번째 단락에 명시 적으로이 부분을 설명합니다. 가능한 모호성을 제거하기 위해 약간 조정했습니다. –