(Basic Concepts 03) 데이터 타입
SoloLearn C 번역
Data Types
데이터 타입
- C supports the following basic data types:
- C는 다음과 같은 기본 데이터 타입을 지원한다.
int
: integer, a whole number.- 정수
float
: floating point, a number with a fractional part.- 부동 소수점
double
: double-precision floating point value.- 배정밀도 부동 소수점 값
char
: single character.- 단일 문자
- The amount of storage required for each of these types varies by platform.
- 이러한 각 타입에 필요한 스토리지 양은 플랫폼에 따라 다르다.
- C has a built-in
sizeof
operator that gives the memory requirements for a particular data type.- C에는 내장된
sizeof
연산자가 있다. - 특정 데이터 타입에 대한 메모리 요구 사항을 제공한다.
- C에는 내장된
- For example
#include <stdio.h>
int main() {
printf("int: %d \n", sizeof(int));
printf("float: %d \n", sizeof(float));
printf("double: %d \n", sizeof(double));
printf("char: %d \n", sizeof(char));
return 0;
}
// int: 4
// float: 4
// double: 8
// char: 1
- The program output displays the corresponding size in bytes for each data type.
- 프로그램 출력은, 각 데이터 타입에 해당하는 크기를 byte(바이트)로 보여준다.
- The
printf
statements in this program have twoarguments
.- 이 프로그램의
printf
문은 두 개의인수
를 가진다.
- 이 프로그램의
- The first is the output string with a
format specifier
(%d), while the next argument return thesizeof
value.- 첫 번째 인수는
서식 지정자 (%d)
가 있는 출력 문자열이다. - 두 번째 인수는
sizeof
값을 반환한다.
- 첫 번째 인수는
- In the final output, the
%d
(for decimal) is replaced by the value in the second argument.- 최종 출력에서
%d (10진수)
는 두 번째 인수의 값으로 대체된다.
- 최종 출력에서
Note that C does not have a boolean type.
C에는 boolean 타입이 없다.
A
printf
statement can have multiple format specifiers with corresponding arguments to replace the specifiers.
printf
문은 여러 서식 지정자를 가질 수 있다.
Format specifiers are also referred to as conversion specifiers.
서식 지정자는 변환 지정자라고도 한다.
Variables
변수
- A variable is a name for an area in memory.
- 변수는 메모리에 있는 영역의 이름이다.
- The name of a variable (also called the
identifier
) must begin with either a letter or an underscore and can be composed of letters, digits, and the underscore character.- 변수의 이름(
식별자
)은 글자 또는 밑줄로 시작해야 한다. - 글자, 숫자, 밑줄 문자로 구성될 수 있다.
- 변수의 이름(
- Variable naming conventions differ, however using lowercase letters with an underscore to separate words is common (sname_case).
- 변수 네이밍 규칙은 다르지만, 단어를 구분하기 위해 밑줄 글자와 함께 소문자를 사용하는 것이 일반적이다. (snake_case)
- Variables must also be declared as a data type before they are used.
- 변수는 사용하기 전에 데이터 타입으로 선언되어야 한다.
- The value for a declared variable is changed with an
assignment statement
.- 선언된 변수의 값은
대입(할당) 문
과 함께 변경된다.
- 선언된 변수의 값은
- For example, the following statements declare an integer variable
my_var
and then assigns it the value 42:- 예를 들어, 다음 명령문은 변수
my_var
를 선언한 다음, 값 42를 할당한다.
- 예를 들어, 다음 명령문은 변수
int my_var;
my_var = 42;
- You can also declare and
initialize
(assign an initial value) a variable in a single statement.- 단일 문에서 변수를 선언하고
초기화
할 수도 있다.
- 단일 문에서 변수를 선언하고
int my_var = 42;
- Let’s define variables of different types, do a simple math operation, and output the results:
- 다른 타입의 변수를 선언하고, 간단한 연산을 수행해서 결과를 출력해보자.
#include <stdio.h>
int main() {
int a, b;
float salary = 56.23;
char letter = 'Z';
a = 8;
b = 34;
int c = a + b;
printf("%d \n", c);
printf("%f \n", salary);
printf("%c \n", letter);
return 0;
}
// 42
// 56.230000
// Z
- As you can see, you can declare multiple variables on a single line by separating them with a
comma
.- 보다시피, 여러 변수를
쉼표
로 구분해서 한 줄에 선언할 수 있다.
- 보다시피, 여러 변수를
- Also, notice the use of format specifiers for float (%f) and char (%c) output.
- float (%f) 및 char (%c) 출력에 대한 서식 지정자 사용에 주의해라.
The C programming language is
case-sensitive
, somy_Variable
andmy_variable
are two different identifiers.C 프로그래밍 언어는 대소문자를 구분한다.
my_Variable
과my_variable
은 서로 다른 식별자이다.
Constants
상수
- A
constant
stores a value that cannot be changed from its initial assignment.상수
는 초기 할당에서 변경될 수 없는 값을 저장한다.
- By using constants with meaningful names, code is easier to read and understand.
- 의미 있는 이름의 상수를 사용하면, 코드를 읽고 이해하기가 더 쉬워진다.
- To distinguish constants from variables, a common practice is to use uppercase identifiers.
- 일반적으로 상수를 구별하기 위해 대문자 식별자를 사용한다.
- One way to define a constant is by using the
const
keyword in a variable declaration:- 상수를 정의하는 한 가지 방법은, 변수 선언에
const
키워드를 사용하는 것이다.
- 상수를 정의하는 한 가지 방법은, 변수 선언에
#include <stdio.h>
int main() {
const double PI = 3.14;
printf("%f", PI);
return 0;
}
// 3.140000
- The value of PI cannot be changed during program execution.
- PI 값은 프로그램 실행 중에 변경될 수 없다.
- For example, another assignment statement, such as PI = 3.141 will generate an error.
- 예를 들어, PI = 3.141과 같은 할당 문은 에러를 발생시킨다.
Constants must be initialized with a value when declared.
상수는 선언될 때 값으로 초기화되어야 한다.
- Another way to define a constant is with the
#define
preprocessor directive.- 상수를 정의하는 또 다른 방법은,
#define
전처리기 지시어를 사용하는 것이다.
- 상수를 정의하는 또 다른 방법은,
- The
#define
directive uses macros for defining constant values.#define
지시어는 상수 값을 정의하기 위해 매크로(macro)를 사용한다.
#include <stdio.h>
#define PI 3.14
int main() {
printf("%f", PI);
return 0;
}
// 3.140000
- Before compilation, the preprocessor replaces every macro identifier in the code with its corresponding value from the directive.
- 전처리기는 컴파일 전에 코드의 모든 매크로 식별자를 해당 지시어의 값으로 대체한다.
- In this case, every occurrence of
PI
is replaced with3.14
.- 위 코드의 경우,
PI
가 발생할 때마다3.14
로 대체된다.
- 위 코드의 경우,
- The final code sent to the compiler will already have the constant values in place.
- 컴파일러에 보낸 최종 코드에는, 이미 상수 값이 있다.
- The difference between
const
and#define
is that the former uses memory for storage and the latter does not.const
는 저장용 메모리를 사용하고,#define
은 사용하지 않는다는 차이가 있다.
Do NOT put a semicolon character at the end of
#define
statements.
#define
문의 끝에 세미콜론을 놓지 않는다.
This is a common mistake.
이는 흔한 실수이다.
QUIZ
- Which of the following are valid data types in C?
- 다음 중 C에서 유효한 데이터 타입은 무엇인가?
[ ] int, float, string, char
[ ] int, double, char, boolean
[x]
int, float, double, char
[ ] int, bool, string
- Fill in the blanks to declare an integer variable num and assign it the value 42.
- 정수 변수 num을 선언하고, 값 42를 할당해라.
int num;
num = 42;
- Fill in the blanks to declare a constant variable PI of type double.
- double 타입의 상수 변수 PI를 선언해라.
const double PI = 3.14;