C μΈμ΄μμ λ³μμ μλ£νμ νλ‘κ·Έλ¨μ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ²λ¦¬νλ κΈ°λ³Έ μμμ΄λ€. λν, μ§μ λ³μ, μ μ λ³μ, static
λ³μλ λ³μκ° νλ‘κ·Έλ¨μμ μ΄λ»κ² μ¬μ©λκ³ , λ©λͺ¨λ¦¬μ μ€μ½νμ λ°λΌ μ΄λ»κ² λμνλμ§λ₯Ό κ²°μ νλ μ€μν κ°λ
λ€μ΄λ€.
λ³μλ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ μ΄λ¦μ κ°μ§ λ©λͺ¨λ¦¬ 곡κ°μ΄λ€. C μΈμ΄μμ λ³μλ₯Ό μ μΈν λλ ν΄λΉ λ³μμ μλ£νμ μ§μ ν΄μΌ νλ©°, μ΄λ κ·Έ λ³μκ° μ μ₯ν μ μλ λ°μ΄ν°μ μ’
λ₯λ₯Ό κ²°μ νλ€.
λ³μλ λ©μΈ λ©λͺ¨λ¦¬μ λ§λ€μ΄μ§λ©°, λ³μ μ΄λ¦μ μ¬μ©νμ¬ λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©νκ² λλ€.
μμλ μ μ₯λ κ°μ λ³κ²½μ΄ λΆκ°λ₯ν λ©λͺ¨λ¦¬ 곡κ°μ΄λ€. μ¦, μ€ν λμ€μ κ°μ΄ λ³κ²½λμ§ μλλ€.
C μΈμ΄μ μλ£νμ ν¬κ² κΈ°λ³Έ μλ£ν, νμ μλ£ν, κ·Έλ¦¬κ³ μ¬μ©μ μ μ μλ£νμΌλ‘ λλλ€.
C μΈμ΄μμ κΈ°λ³Έ μλ£ν, μ¦ κΈ°λ³Έ (μ 곡) νμμ C μΈμ΄ νμ€μ μν΄ μ§μ λλ©° μ»΄νμΌλ¬μ κΈ°λ³Έ μ 곡λλ€. κΈ°λ³Έ νμμ ν€λ νμΌμ μ μλμ§ μκ³ , μ μ, λΆλ μμμ λ° voidμ μΈ κ°μ§ κΈ°λ³Έ λ²μ£Όλ‘ λλλ€. λλΆλΆμ κΈ°λ³Έ νμμ μ»΄νμΌλ¬μμ κ³ μ νμμΌλ‘ μ²λ¦¬λμ§λ§, μΌλΆ νμμ λμμ΄μ΄κ±°λ μ»΄νμΌλ¬μμ λλ±ν νμμΌλ‘ μ²λ¦¬λλ€.
void
λ λΉ κ° μ§ν©μ μ€λͺ
νλ©°, νμ void
μ λ³μλ₯Ό μ§μ ν μ μλ€.
void
νμμ μ£Όλ‘ κ°μ λ°ννμ§ μλ ν¨μλ₯Ό μ μΈνκ±°λ νμνλμ§ μκ±°λ μμλ‘ νμνλ λ°μ΄ν°μ λν μ λ€λ¦ ν¬μΈν°λ₯Ό μ μΈνλλ° μ¬μ©λλ€.
std::nullptr_t
: ν€μλ nullptr
λ λͺ¨λ μμ ν¬μΈν° νμμΌλ‘ λ³νν μ μλ νμ std::nullptr_t
μ null ν¬μΈν° μμ.μ λ€λ¦ νλ‘κ·Έλλ°(generic programming)
λ°μ΄ν° νμμ μμ‘΄νμ§ μκ³ , νλμ κ°μ΄ μ¬λ¬ λ€λ₯Έ λ°μ΄ν° νμ λ€μ κ°μ§ μ μλλ‘ νλ νλ‘κ·Έλλ° λ°©μμ΄λ€.
μ¦, νλ‘κ·Έλλ¨Έκ° μ΄λ€ μλ£νμ μ¬μ©ν μ§ λ―Έλ¦¬ μ μ μκΈ° λλ¬Έμ μ΄λ€ μλ£νμ΄λ μκ΄μμ΄ μ€νν μ μλλ‘ νλ‘κ·Έλλ°ν κ²μ΄λ€.
true
/ false
)bool
νμμλ bool
μ κ° true
μ false
κ° μλ€.
char
)char
μ λ¬Έμ νν νμμΌλ‘ ν κ°μ λ¬Έμλ₯Ό μ μ₯νλ€.
C μ»΄νμΌλ¬λ char
, signed char
λ° unsigned char
νμμ λ³μλ₯Ό μλ‘ λ€λ₯Έ νμμΌλ‘ μ²λ¦¬νλ€.
short
/ int
/ long
)κΈ°λ³Έ μ μ νμμ int
λ‘ μ μλ₯Ό μ μ₯νλ€. ꡬνλ³ λ²μμ λν λͺ¨λ μ μλ₯Ό λνλΌ μ μλ€.
λΆμΈ μ μ ννμ μμ κ°κ³Ό μμ κ°μ λͺ¨λ 보μ ν μ μλ μ μ ννμΌλ‘ νμ μ ν€μλ signed
λ₯Ό μ¬μ©νλ€. unsigned
νμ μ ν€μλλ μμκ° μλ κ°λ§ 보μ ν μ μλ λΆνΈ μλ ννμ μ§μ ν λ μ¬μ©νλ€.
ν¬κΈ° νμ μλ μ¬μ©λ μ μ ννμ λλΉλ₯Ό λΉνΈ λ¨μλ‘ μ§μ νλ€. C μΈμ΄μλ long
, long long
, short
λ₯Ό ν¬κΈ° νμ μλ‘ μ§μνλ€.
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
νμ μ΄λ¦ | ν¬κΈ° | μΆλ ₯ μλ£ν | κΈ°ν μ΄λ¦ | κ°μ λ²μ |
---|---|---|---|---|
bool | 1byte(8bit) | true / false | ||
char | 1byte(8bit) | %c (λ¬Έμ) / %s (λ¬Έμduf) | β128 ~ 127(κΈ°λ³Έκ°) | |
int | 4byte(32bit) | %d | signed | -2,147,483,648 ~ 2,147,483,647 |
unsigned int | 4byte | unsigned | 0 ~ 4,294,967,295 | |
short | 2byte(16bit) | short int , signed short int | -32,768 ~ 32,767 | |
unsigned short | 2byte | unsigned short int | 0 ~ 65,535 | |
long | 4byte(32bit) | long int , signed long int | -2,147,483,648 ~ 2,147,483,647 | |
unsigned long | 4byte | unsigned long int | 0 ~ 4,294,967,295 | |
long long | 8byte(64bit) | (__int64 μ λμΌ) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
unsigned long long | 8byte | (unsigned __int64 μ λμΌ) | 0 ~ 18,446,744,073,709,551,615 | |
enum | λ€μν¨ |
float
/ double
)'λΆλ μμμ ' νμμ IEEE-754 ννμ μ¬μ©νμ¬ κ΄λ²μν ν¬κΈ°μ μμ μλ¦Ώμ κ°μ κ·Όμ¬κ°μΌλ‘ μ 곡νλ€. λν, μμ λΆλΆμ΄ μμ μ μλ κ°μ μ§μ ν μ μλ€.
float
: C μΈμ΄μμ κ°μ₯ μμ λΆλ μμμ (μ€μ)λ₯Ό μ μ₯printf("%f", 0.123456789); // μΆλ ₯: 0.1234567
printf("%.2f", 3.14159); // μΆλ ₯: 3.14
printf("%e", 0.123456789); // μΆλ ₯: 1.234568e-001
double
: float
λ³΄λ€ μ λ°ν μ€μλ₯Ό μ μ₯printf("%lf", 3.14159265358979); // μΆλ ₯: 3.141593
long double
: double
λ³΄λ€ ν¬κ±°λ κ°μ λΆλ μμμ νμ μ΄λ¦ | λ°μ΄νΈ | μΆλ ₯ μλ£ν | κ°μ λ²μ | |
---|---|---|---|---|
float | 4byte | %f | -3.4E +/- 38(7μ리 μ«μ) | |
double | 8byte | %lf | 1.7E +/- 308(15μ리 μ«μ) | |
long double | 8byte | 1.7E +/- 308(15μ리 μ«μ) |
int arr[5] = {1, 2, 3, 4, 5}; // μ μ λ°°μ΄
int num = 10;
int *p = # // num λ³μμ μ£Όμλ₯Ό μ μ₯
struct
(ꡬ쑰체) : λ€μν μλ£νμ νλ° λ¬Άμ΄ νλμ μλ£νμ²λΌ μ¬μ©struct Person {
char name[50];
int age;
};
printf
λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μνλ νμμΌλ‘ μΆλ ₯ν μ μκ² λμμ€.μ°Έκ³ ,
https://learn.microsoft.com/ko-kr/cpp/cpp/fundamental-types-cpp?view=msvc-170,
https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170