C - 리터럴: 초보자 가이드

안녕하세요, 미래의 프로그래머 여러분! 오늘 우리는 C 프로그래밍의 세계로 흥미로운 여정을 떠납니다. 특히 리터럴에 대해 집중적으로 다룰 것입니다. 만약 이전에 코드를 작성한 적이 없다면 걱정하지 마세요 - 저는 친절한 가이드로서, 단계별로 함께 나아갈 것입니다. 이 튜토리얼이 끝나면, 여러분이 얼마나 많이 배웠는지 놀라실 것입니다!

C - Literals

리터럴이란 무엇인가요?

들어보기 전에, 리터럴이 무엇인지 이해해 보겠습니다. 프로그래밍에서 리터럴은 코드에 직접 나타나는 고정된 값을 의미합니다. 그들은 프로그래밍 세계의 상수와 같아 - 변하지 않고 신뢰할 수 있습니다. 이를 프로그램의 건축 블록으로 생각해 보세요.

이제 C에서 다양한 종류의 리터럴을 탐구해 보겠습니다!

정수 리터럴

정수 리터럴은 소수점이 없는 전체 숫자입니다. C에서 우리는 정수를 다양한 방식으로 표현할 수 있습니다. 다음은 몇 가지 예제입니다:

int a = 42;        // 십진수 (기수 10)
int b = 052;       // 팔진수 (기수 8)
int c = 0x2A;      // 십陆진수 (기수 16)
int d = 0b101010;  // 이진수 (기수 2, C99 이후)

이 코드에서:

  • 42은 십진수 리터럴입니다 (일상 생활에서 사용하는 것)
  • 052은 팔진수 리터럴입니다 (리더 0을 주의)
  • 0x2A은 십陆진수 리터럴입니다 (리더 0x를 주의)
  • 0b101010은 이진수 리터럴입니다 (리더 0b를 주의)

이 모든 리터럴은 같은 값을 나타냅니다: 십진수의 42. 숫자가 다양한 "옷"을 입을 수 있다는 것이 fascinatig하지 않나요?

정수 접미사

정수 리터럴에 접미사를 추가하여 그 유형을 지정할 수도 있습니다:

int e = 42L;    // 장정수
int f = 42U;    // 부호 없는 정수
int g = 42UL;   // 부호 없는 장정수
int h = 42LL;   // 장장정수 (C99 이후)

이 접미사들은 컴파일러가 우리가 어떤 유형의 정수를 다루고 있는지 이해하는 데 도움을 줍니다.

부동소수점 리터럴

이제 소수점 숫자의 세계로 이동해 보겠습니다! 부동소수점 리터럴은 소수점이 포함된 숫자입니다. 다음은 몇 가지 예제입니다:

float pi = 3.14159;
double avogadro = 6.022e23;  // 과학 표기법
long double planck = 6.62607015e-34L;  // L 접미사를 사용한 장부동소수점

이 코드에서:

  • 3.14159은 간단한 부동소수점 리터럴입니다
  • 6.022e23은 과학 표기법을 사용합니다 (e23은 × 10^23을 의미)
  • 6.62607015e-34L은 장부동소수점 리터럴입니다 (L 접미사를 주의)

부동소수점 리터럴은 기본적으로 이중 정밀도입니다. 만약 플로트를 사용하고 싶다면 F 접미사를 사용할 수 있습니다:

float f = 3.14F;

문자 리터럴

C에서 문자 리터럴은 단일引用符로 둘러싸인 단일 문자를 나타냅니다. 몇 가지 예제를 보겠습니다:

char grade = 'A';
char newline = '\n';
char smiley = '\u263A';  // 유니코드 문자 (C99 이후)

이 코드에서:

  • 'A'은 간단한 문자 리터럴입니다
  • '\n'은 특수 문자입니다 (뉴라인)
  • '\u263A'은 유니코드 문자입니다 (smiley face ☺)

이스케이프 시퀀스

때로는 직접 타이핑할 수 없는 문자를 나타내기 위해 이스케이프 시퀀스를 사용해야 합니다. 이스케이프 시퀀스는 항상 백슬래시 ()로 시작합니다. 다음은 일반적인 이스케이프 시퀀스 표입니다:

이스케이프 시퀀스 의미
\n 뉴라인
\t
\ 백슬래시
\' 단일引用符
\" 이중引用符
\0 널 문자

이제 그들을 실제로 사용해 보겠습니다:

char newline = '\n';
char tab = '\t';
char backslash = '\\';
char single_quote = '\'';
char double_quote = '\"';
char null_char = '\0';

printf("Hello\tWorld!\nThis is a backslash: \\\nAnd a quote: \'");

이 코드는 다음과 같은 출력을 생성합니다:

Hello   World!
This is a backslash: \
And a quote: '

문자열 리터럴

마지막으로, 문자열 리터럴에 대해 이야기해 보겠습니다. C에서 문자열 리터럴은 이중引用符로 둘러싸인 문자의 시퀀스입니다. 몇 가지 예제를 보겠습니다:

char* greeting = "Hello, World!";
char* multiline = "This is a\n"
"multi-line\n"
"string literal.";
char* unicode = u8"This is a Unicode string: \u263A";  // C11 이후

이 코드에서:

  • "Hello, World!"은 간단한 문자열 리터럴입니다
  • 멀티라인 문자열은 긴 문자열을 줄을跨ぐ하는 방법을 보여줍니다
  • 유니코드 문자열은 문자열에 유니코드 문자를 포함하는 방법을 보여줍니다

记住, C에서 문자열 리터럴은 실제로는 널 문자('\0')로 끝나는 문자 배열입니다.

결론

축하합니다! 리터럴에 대해 배우며 C 프로그래밍의 세계로 첫 걸음을 뗐습니다. 이 기본적인 건축 블록은 프로그래밍 여정에서 매우 중요합니다.

기억하세요, 연습이 완벽을 이루ります. 이 다양한 리터럴을 사용하여 코드를 작성해 보세요. 실험하고, 실수하고, 그것을 배워 보세요. 이는 능숙한 프로그래머가 되는 가장 좋은 방법입니다.

행복한 코딩을 기원하며, 다음에 만날 때까지 C의 fascinatig한 세계를 탐험하세요!

Credits: Image by storyset