2010-11-23 6 views
5

자바의 백 슬래시에 대해 궁금합니다. 컴퓨터 또는 컴파일러는이 백 슬래시를 어떻게보고 컴퓨터에 어떻게 저장합니까?백 슬래시 ""가 실제로 의미하는 것은 무엇입니까?

나는 백 슬래시가 다음 문자의 특별한 의미를 제거한다는 것을 읽었습니다. 그러나 컴퓨터가이 컴퓨터를 어떻게 처리하고 어떤 조건에서 다른 방식으로 컴퓨터를 처리합니까?

예를 들어 C 프로그래밍에서 null 문자 \0은 문자열의 끝이지만 한 문자 또는 백 슬래시 + 영입니까?

백 슬래시의 목적은 사람을 나타내거나 0-1 컴퓨터를 나타내는 것입니다.

답변

8

백 슬래시 \은 문자가 A이고 쉼표가 ,이고 숫자가 4 인 문자입니다. 일부 프로그래밍 언어, 특히 C와 그 자손 (및 조상)은 문자열이나 문자 리터럴 내에서 다른 문자를 이스케이프 처리하는 데 사용됩니다. 예를 들어, '\a'은 벨 문자를 나타내며 인쇄 할 경우 컴퓨터에서 경고음을냅니다 (printf("%c", '\a')).

C 언어 이스케이프 문자로 컴파일러가 허용하는 대부분 인간의 구조이므로 사람이 벨 문자 등을 표현할 수 있습니다. 컴파일 된 코드는 단순히 문자를 저장합니다. 값이 7 인 바이트입니다. 그냥 명확하게 말하면 이 아니고\이고 그 뒤에 a이옵니다.

다른 컨텍스트에서 백 슬래시는 런타임에 프로그램에 무엇인가 의미합니다. 가장 잘 알려진 인스턴스는 정규 표현식 문법입니다. 백 슬래시는 다른 문자를 이스케이프 처리하여 특별한 의미를 부여하거나 특별한 의미를 없애줍니다. 예를 들어, grep '\<foo\>' file.txt은 file.txt에 단어 foo가있는 행을 찾습니다. 이 경우 백 슬래시는 실제로 런타임에 있으며 프로그램에 따라 뒤 따르는 <>에 대한 이스케이프로 해석됩니다. 이 경우 \<\>은 문자를 전혀 나타내지 않습니다. 단어의 시작과 끝에 대해 ​​각각 너비가 0 인 일치를 나타냅니다.

+0

안녕하세요, 마르셀로, 자세한 답변을 부탁드립니다. 한 가지, 문자열 처리와 같은 c 프로그램을 만들 때 우리는 인간으로서 프로그램에서 "\ 0"을 사용하여 문자열의 끝으로 작업을 표현합니다. 그렇다면 컴파일러는 무엇을합니까? "\"가 저장되어 있습니까? 아니면 다음 문자가 "0"입니까 (예에서는 "a"입니까?)? 그런 다음 프로그램이 실행될 때 코드가이 저장된 값으로 어떻게 응답하거나 진행합니까? – pepero

+0

@pepero : \ 0으로 문자열을 끝내는 경우, 값은 0 (비트가 설정되지 않음) 인 바이트입니다. 이것은 문자열의 끝을 찾는 데 사용되는 또 다른 C 변환입니다. – BCS

+0

@pepero : 편집 된 답변을 저장하기 전에 귀하가 귀하의 의견을 남겼습니다. 두 번째 단락에 명시 적으로이 부분을 설명합니다. 가능한 모호성을 제거하기 위해 약간 조정했습니다. –

7

실제로는 전체적으로에 의존합니다. 백 슬래시는 사용 된 위치에 따라 여러 가지 의미가 있습니다. 예를 들어 Windows에서 백 슬래시는 일반적으로 경로 구분 기호로 사용됩니다.

C 기반 프로그래밍 언어 (다른 스크립팅 언어와 마찬가지로)는 escape characters입니다. 그들은 자신의 권리에 대한 성격이 평상시와 다른 방식으로 해석되어야 함을 지적합니다. 귀하의 예에서 \0은 널 종결 자이며 백 슬래시는 0이 컴파일러 (및 인간!)에 의해 숫자 0 대신 널 문자로 해석되어야 함을 나타냅니다. 역 슬래시는 함수가 제공되면 삭제되기 때문에 단지 하나 인 문자로 볼 수 있습니다. 이스케이프 문자로 사용할 수 없다면 그 순서에는 의미가 없습니다.

+0

다른 이스케이프 소스 : http://msdn.microsoft.com/en-us/library/h21280bw(VS.80).aspx \ 0 – BCS

+0

@BCS를 명시 적으로 포함하고 있지 않다는 점은 흥미 롭습니다. MSDN 문서에서 그다지 재미 있지 않은 예외라고 생각합니다. 명시 적으로 여기에 나와 있습니다 (http://msdn.microsoft.com/en-us/library/6aw8xdf2.aspx). –

+0

8 진수 리터럴의 일부로 * 암시 적으로 언급되었으므로 흥미 롭습니다. – BCS

0

역 슬래시는 사용되는 상황이 특별한 경우에만 의미가 있습니다. 예를 들어 많은 프로그래밍 언어에서는 문자열에 escape characters을 사용합니다. 이것은 대개 다음 문자의 의미를 변경합니다.

관련 문제