source

C/C++의 작은따옴표, 큰따옴표 및 크기('a')

gigabyte 2022. 9. 15. 22:53
반응형

C/C++의 작은따옴표, 큰따옴표 및 크기('a')

는 C 또는 C++에서 작은따옴표 큰따옴표 대 큰따옴표를 보고 있었다.설명을 완전히 이해할 수 없어서 프로그램을 만들었습니다.

#include <stdio.h>
int main()
{
  char ch = 'a';
  printf("sizeof(ch) :%d\n", sizeof(ch));
  printf("sizeof(\'a\') :%d\n", sizeof('a'));
  printf("sizeof(\"a\") :%d\n", sizeof("a"));
  printf("sizeof(char) :%d\n", sizeof(char));
  printf("sizeof(int) :%d\n", sizeof(int));
  return 0;
}

gcc와 g++를 모두 사용하여 컴파일했습니다.다음 출력은 다음과 같습니다.

gcc:

sizeof(ch)   : 1  
sizeof('a')  : 4  
sizeof("a")  : 2  
sizeof(char) : 1  
sizeof(int)  : 4  

g++:

sizeof(ch)   : 1  
sizeof('a')  : 1  
sizeof("a")  : 2  
sizeof(char) : 1  
sizeof(int)  : 4  

g++의 출력은 납득이 가며, 그것에 대해서는 일절 의심하지 않습니다.gcc에서 필요한 것은 무엇입니까?sizeof('a')다르다sizeof(char)이면에는 실제 이유가 있나요?아니면 역사적 이유일까요?

또한 C에 있는 경우char그리고.'a'사이즈가 다르다는 것은 우리가 글씨를 쓸 때char ch = 'a';, 암묵적인 타입 표현을 하고 있습니까?

C에서 다음과 같은 문자 상수는'a'활자가 있다int, C++에서는char.

마지막 질문에 대해서, 네, 그렇습니다.

char ch = 'a';

를 암묵적으로 변환합니다.int로.char.

캐릭터에 연결된 char는 없기 때문이다.

a가 62인 것 같아

printf ( % c ) " , 62) 를 사용해 보면, 문자가 표시됩니다.

언급URL : https://stackoverflow.com/questions/10606807/single-double-quotes-and-sizeofa-in-c-c

반응형