C 또는 C ++에서 작은 따옴표와 큰 따옴표
C 또는 C ++ 프로그래밍에서 작은 따옴표와 큰 따옴표를 언제 사용해야합니까?
C 및 C ++에서 작은 따옴표는 단일 문자를 식별하고 큰 따옴표는 문자열 리터럴을 작성합니다. 'a'
은 단일 문자 리터럴 인 반면 "a"
, 'a'
및 종료 자 (2 자 배열)를 포함하는 문자열 리터럴 입니다.
문자 그대로의 형태 인 ++ C에서 char
,하지만 C에서, 문자 그대로의 형태가 참고 int
이라고 sizeof 'a'
동안의 int는 32 비트이다 (그리고 CHAR_BIT 8이다) 아키텍처에서 4 sizeof(char)
사방 1이다.
일부 컴파일러는 다중 문자 상수를 허용하는 확장도 구현합니다. C99 표준은 다음과 같이 말합니다.
6.4.4.4p10 : "두 개 이상의 문자 (예 : 'ab')를 포함하거나 단일 바이트 실행 문자에 매핑되지 않는 문자 또는 이스케이프 시퀀스를 포함하는 정수 문자 상수의 값은 구현 정의됩니다. "
예를 들면 다음과 같습니다.
const uint32_t png_ihdr = 'IHDR';
결과 상수 (이를 구현하는 GCC에서)는 각 문자를 가져 와서 이동하여 얻는 값을 가지므로 'I'는 32 비트 값의 최상위 비트로 끝납니다. 플랫폼 독립적 인 코드를 작성하는 경우에는 이것에 의존해서는 안됩니다.
작은 따옴표는 문자 ( char
)이고 큰 따옴표는 null로 끝나는 문자열 ( char *
)입니다.
char c = 'x';
char *s = "Hello World";
'x'
기계 문자 세트에서 문자 x의 숫자 값을 나타내는 정수입니다."x"
문자의 배열로 이루어진 두 개의 긴 문자‘x’
뒤에‘\0’
작은 따옴표는 단일 문자를위한 것입니다. 큰 따옴표는 문자열 (문자 배열)입니다. 원하는 경우 작은 따옴표를 사용하여 한 번에 한 문자 씩 문자열을 작성할 수 있습니다.
char myChar = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };
나는 다음과 같은 것들을 파고 들었다 : int cc = 'cc'; 기본적으로 정수에 대한 바이트 단위 복사입니다. 따라서 그것을 보는 방법은 기본적으로 2 c 인 'cc'가 정수 cc의 2 바이트 아래로 복사되는 것입니다. 사소한 것을 찾고 있다면
printf("%d %d", 'c', 'cc'); would give:
99 25443
25443 = 99 + 256 * 99 때문입니다
따라서 'cc'는 문자열이 아닌 다중 문자 상수 입니다.
건배
single quote
입니다character
;double quote
입니다string
.
큰 따옴표는 문자열 리터럴을위한 것입니다. 예 :
char str[] = "Hello world";
작은 따옴표는 단일 문자 리터럴을위한 것입니다. 예 :
char c = 'x';
편집 David가 다른 답변에서 언급했듯이 문자 리터럴의 유형은입니다 int
.
C에서 'a'와 같은 작은 따옴표는 문자 상수를 나타내며 "a"는 문자 배열이며 항상 0 문자로 끝납니다.
작은 따옴표는 문자에 사용되고 큰 따옴표는 문자열에 사용됩니다.
예를 들어 ..
printf("%c \n",'a');
printf("%s","Hello World");
산출
안녕하세요 세계
반대로 그 반대로 사용하고 문자열에 작은 따옴표를 사용하고 문자에 큰 따옴표를 사용한 경우. 결과는 다음과 같습니다.
printf("%c \n","a");
printf("%s",'Hello World');
출력 :
가비지 값이 있거나 예상치 못한 결과가 발생하거나 다음과 같이 출력 될 수 있습니다.
두 번째 진술 동안. 당신은 아무것도 볼 수 없습니다. 한가지 더. 이 후에 더 많은 진술이 있다면. 그들은 또한 당신에게 결과를주지 않을 것입니다.
참고 : PHP 언어를 사용하면 작은 따옴표와 큰 따옴표를 쉽게 사용할 수 있습니다.
작은 따옴표는 문자를 나타내며 이중은 문자열을 나타냅니다.
Java에서도 마찬가지입니다.
작은 따옴표를 작은 따옴표로 사용하십시오 :
char ch = 'a';
여기 'a'
에 char 상수가 있으며 char a의 ASCII
값 과 같습니다 .
다음과 같이 문자열에 큰 따옴표를 사용하십시오.
char str[] = "foo";
여기 "foo"
에 문자열 리터럴이 있습니다.
사용하는 "a"
것은 좋지만 '사용하는 것은 좋지 않습니다.'foo'
참고 URL : https://stackoverflow.com/questions/3683602/single-quotes-vs-double-quotes-in-c-or-c
'IT' 카테고리의 다른 글
동일한 키 아래에 여러 값이있는 HashMap (0) | 2020.05.17 |
---|---|
npm을 사용하여 현재 디렉토리에 package.json 종속성을 설치하는 방법 (0) | 2020.05.17 |
Git은“경고 : 알려진 호스트 목록에 영구적으로 추가되었습니다”라고 말합니다. (0) | 2020.05.17 |
Linux 호스트에서 실행되는 Virtualbox의 USB 장치를 인식하는 방법은 무엇입니까? (0) | 2020.05.17 |
Android 4.0 에뮬레이터의 Google Play (0) | 2020.05.17 |