728x90
3.13 불리언형
- 불리언형 : 논리 연산시 사용. 논리 자료형 이라고도 부름
- 불리언형은 참(1), 거짓(0)의 두가지 값만 가질 수 있음 -> 내부적으론 정수형
- 참, 거짓을 표현하는 bit 1자리만을 사용하나 자료형이 가질 수 있는 최소 크기가 1byte 이므로 불리언형은 1byte 크기를 가짐
#include <stdio.h>
#include <stdbool.h> // true와 false를 직접 문자로 넣어 사용 가능
int main()
{
printf("%u\n", sizeof(_Bool)); // 1byte
_Bool b1; // 불리언형 자료형 선언
b1 = 0; // false
b1 = 1; // true
printf("%d\n", b1); // 형식 지정자가 따로 없음 -> 정수 형식지정자 사용
bool b2, b3; // stdbool.h을 사용하여 bool type 선언 가능
b2 = true; // 예약어
b3 = false; // 예약어
printf("%d %d\n", b2, b3);
return 0;
}
Output :
1
1
1 0
- 컴퓨터가 참, 거짓을 판별할 때는 참과 거짓 각각을 따로 판별하지 않고 거짓이 아니면 참이라고 판별함
3.14 복소수형
#include <stdio.h>
#include <complex.h> // 복소수형 사용을 위한 library
int main()
{
_Dcomplex z; // double type. double, float, long double 3가지 type이 존재
z._Val[0] = 1.0;
z._Val[1] = 1.0;
return 0;
}
4.1 문자열 입출력하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
// char fruit_name; // 문자 하나만 저장 가능
char fruit_name[40]; // char type (1byte) 저장 공간을 40개 만듦
printf("What is your favorate fruit?\n");
// scanf("%c", &fruit_name); // 입력받는 공간이 글자 한 칸 밖에 받을 수 없음
scanf("%s", fruit_name); // 문자열을 입력받을 시 & 사용 X. 문자열(배열)의 변수명 자체가
// 문자열의 주소를 나타내기 때문
printf("You like %s!\n", fruit_name);
return 0;
}
Output :
What is your favorate fruit?
Banana 입력
You like Banana!
- C, C++ 표준에서는 format specifier보다 conversion specifier라는 표현을 더 많이 사용
- 배열(Array) : 같은 자료형의 자리를 여러개 만듦
4.2 sizeof 연산자
- sizeof 연산자 : 변수나 자료형이 차지하는 메모리의 크기를 알려줌
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
unsigned int int_size1 = sizeof a; // == sizeof(int)
unsigned int int_size3 = sizeof(a); // 위와 동일한 표현
unsigned int int_size2 = sizeof(int); // 자료형 직접 입력. 이때는 괄호 필수
size_t int_size4 = sizeof(a); // 다른 시스템에서 sizeof의 표현범위가 unsigned int가 아닐
// 경우가 있을 수도 있어서 size_t형을 사용하여 이식성을 높임
size_t float_size = sizeof(float);
printf("Size of int type is %u bytes.\n", int_size1);
printf("Size of int type is %zu bytes.\n", int_size4); // zu = size_t의 형식지정자
printf("Size of float type is %zu bytes.\n", float_size);
return 0;
}
- size_t는 가장 큰 사이즈를 담을 수 있는 unsigned 자료형 ex) 32bit 컴퓨터에선 32bit, 64bit 컴퓨터에선 64bit
Output :
Size of int type is 4 bytes.
Size of int type is 4 bytes.
Size of float type is 4 bytes.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int int_arr[30]; // 4byte씩 30개 -> 컴파일시 크기 결정
int* int_ptr = NULL; // 주소를 적을 수 있는 메모지를 들고 있는 상태
int_ptr = (int*)malloc(sizeof(int) * 30); // 메모리 공간들을 대표하는 메모리주소 하나를
//받아서 적음
printf("Size of array = %zu bytes\n", sizeof(int_arr));
printf("Size of pointer = %zu bytes\n", sizeof(int_ptr)); // 메모지의 크기를 알려줌
return 0;
}
Output :
Size of array = 120 bytes
Size of pointer = 4 bytes
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
char c = 'a'; // 내부적으로 정수로 바뀌어져 저장
char string[10]; // C언어에서는 문자열의 마지막에 null character ('\0')을 저장해야 함
// null character는 마침표 역할. string은 총 9개의 문자만 받을 수 있음
size_t char_size = sizeof(char);
size_t str_size = sizeof(string);
printf("Size of char type is %zu bytes.\n", char_size);
printf("Size of string type is %zu bytes.\n", str_size);
return 0;
}
Output :
Size of char type is 1 bytes.
Size of string type is 10 bytes.
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 4.6 명백한 상수들 ~ 4.8 변환 지정자의 수식어들 (0) | 2021.08.18 |
---|---|
[홍정모의 따라하며 배우는 C언어] 4.3 문자열이 메모리에 저장되는 구조 ~ 4.5 기호적 상수와 전처리기 (0) | 2021.08.16 |
[홍정모의 따라하며 배우는 C언어] 3.11 부동소수점형 ~ 3.12 부동소수점형의 한계 (0) | 2021.08.12 |
[홍정모의 따라하며 배우는 C언어] 3.9 고정 너비 정수 ~ 3.10 문자형 (0) | 2021.08.10 |
[홍정모의 따라하며 배우는 C언어] 3.7 다양한 정수형들 ~ 3.8 8진수와 16진수 (0) | 2021.08.08 |