2016-10-28 1 views
1

죄송합니다. 아주 기본적인 질문을 드리겠습니다. 나는 그것을 찾으려고 노력했지만 어떤 대답도 찾을 수 없었다.왜 두 문자열 사이에 공백을 추가하면 C에서 문자열이 연결됩니까?

나는 다음과 같은 코드를 실행하면 : 그런 일이 왜

#include <stdio.h> 

int main() { 
    char *temp = "sai" "krishna"; 
    printf("%s\n", temp); 
    return 0; 
} 

saikrishna

당신이 친절하게 지정할 수 있습니다 인쇄? strcat 또는 다른 연결 기법을 사용해야하지 않습니까?

이 문서와 관련된 모든 문서와이 기술을 사용할 수있는 곳을 참조 할 수 있습니까?

답변

0

언어 기능입니다. C는 컴파일시 문자열 리터럴이 연결되도록합니다. 매우 긴 문자열 리터럴이 여러 줄에 걸쳐 있거나 16 진수 이스케이프 시퀀스가 ​​포함 된 문자열 리터럴을 분리하려는 경우 유용 할 수 있습니다. (예를 puts("\x42AD")를 들어 BAD를 인쇄 할 puts("\x42" "AD")에 반대 가능성이 말도하고 의도이며, 문자 0x42AD로 변환합니다.

strcatstrcpy을 실행 시간에 처리하는 문자열입니다. 두 개의 문자열 리터럴이있는 경우, 그들은 컴파일 타임 상수이며 컴파일러가 미리 연결하여 실행 시간을 절약 할 수 있습니다.

관련 문제