탈출 포함의 char *에서 문자를 만듭니다고려 캐릭터에게 다음과 같은 문자 * 예를
char* s = "\n";
이는 새 라인 문자과 같이 나타내는 단일 문자로 변환 할 수있는 방법 :
char c = '\n';
개행을 처리하는 것 외에도 이스케이프 문자가있는 문자를 문자로 변환 할 수 있어야합니다. 이것이 어떻게 가능한지?
탈출 포함의 char *에서 문자를 만듭니다고려 캐릭터에게 다음과 같은 문자 * 예를
char* s = "\n";
이는 새 라인 문자과 같이 나타내는 단일 문자로 변환 할 수있는 방법 :
char c = '\n';
개행을 처리하는 것 외에도 이스케이프 문자가있는 문자를 문자로 변환 할 수 있어야합니다. 이것이 어떻게 가능한지?
char c = *s;
작품.
문자열 안에있는 '\n'
은 소스 형식으로 2 자입니다. 컴파일 한 후 단일 문자입니다. 다른 모든 이스케이프 문자에도 동일합니다.
문자열 "fo\111\tar"
은 컴파일 후에 7 자 (소스 코드 (6에서 볼을 'f'
, 'o'
, '\111'
, '\t'
, 'a'
및 'r'
) 및 null 터미네이터)이있다.
그런 뜻입니까? 그것은 역 참조
char * s = "\n";
char c = *s;
:
char* s = "\n";
char c = *s;
다른 말로, 개행 문자는 실제로 메모리의 한 문자뿐입니다. 이 배열 인 것처럼 문자열 포인터에서 하나의 문자를 얻으려면, 당신은 포인터를 액세스 할 수 있습니다 (물론, 가정 문자열에 할당 된 메모리가 있는지가에 지적) :
char* s = "\n";
char c = s[0];
'숯불 C = * s; 작동합니다. 문자열 안의''\ n ''은 소스 형식의 두 글자 밖에 없습니다 : 컴파일 한 후에는 단일 문자입니다. 다른 모든 이스케이프 문자에도 동일합니다. ''fo \ 111 \ tar "'문자열은 컴파일 후에 7 자 (소스 코드에서 볼 수있는 6 자 및 널 종결 자)입니다. – pmg
@pmg - 답변이 아니라 덧글을 게시 해주세요! – JonH
@ pmg : JonH가 맞습니다. 그것을 게시 – Heisenbug