본문 바로가기

문자열

C의 기본적 지식(2) ▶ 문자열의 내부 구조 C언어에서 문자열은 끝에 코드 0(수치 제로)을 붙여 표현한다. 예를 들어 "abcde"라는 문자열은 메모리 내부에서는 다음과 같이 기억된다. 따라서 문자열을 표시하려면 [문자열이 길이 +1]의 메모리 영역이 필요하게 된다. 또한 문자열을 처리할 때 '0이 나올 때까지 처리를 한다'는 식으로 처리를 하게 된다. ▶ 문자열의 내부 구조 문자열의 끝은 아스키 코드로 0이다. 이것을 표현할 때는 단순히 [0]이라고 쓰는 방법과 이스케이프 문자를 이용해 [\0]이라고 쓰는 방법이 있는데, 모두 동일하게 제로를 의미한다. 그러나 양자에는 다음과 같은 뉘앙스의 차이가 있다. 0 -단순한 수치로서의 0이다. \0 -문자열의 끝으로서의 0이다. 따라서 문자열의 끝을 나타낼 때는 그 의미가 보다 .. 더보기
C의 기본적 지식(1) ▶ 공백계 문자의 취급 C 프로그램에서 공백문자는 확대 해석된다. 말하자면 블랭크문자 탭문자 쪽 넘김 개행문자 와 같은 것은 모두 넓은 의미에서 공백문자로 취급된다. 공백문자가 여러 개 연속되어 있어도 1개의 공백과 같은 기능을 한다. C에서는 개행문자를 단순한 공백과 동일시함으로써 행의 개념을 없앤다. ▶ 행의 끝파일 상에서 행의 끝은 개행문자로 표현된다. 그러나 C컴파일러는 이 개행문자를 단순한 공백으로 간주하므로 C에서는 - 그 행의 끝까지 유효한 처리는 없다. 예를 들어 주석문도- 그 행의 끝까지 주석문으로 삼는 규칙은 없다. 어디까지나 주석문의 시작에서 주석문의 끝까지가 유효 범위인 것이다. 주석문이 여러 행에 걸쳐 있을 수도 있다. 단 C에도 행의 끝을 인식하는 기능히 하나 있는데, 그것이 바.. 더보기