★ C언어는 메모리에 저장된 데이터에 두 가지 방식으로 접근이 가능함 ★
→ 변수 이름을 지정해이름으로 접근 / 메모리 주소를 이용하는 포인터 접근 방식
기본 데이터형
→ 데이터 크기가 중요한 기준점 중 하나
문자형
- char : 1byte
→ 1byte 정수를 저장할 때도 사용 가능 : -128 ~ 127 값
★ 문자열을 저장할 수 있는 기본 데이터형은 없음 ★
★ unsigned char(0~255 값)형은 1바이트 크기의 2진데이터를 저장할 때 주로 사용함 ★
→ 작은 크기의 정수를 저장할 때 유용함
#include<stdio.h>
int main(void){
char n = 97;
printf("n = %d\n", n);
printf("n+1 = %d\n", n+1);
return 0;
}
▶ printf("n = %d\n", n) : 10진수 정수로 출력
▶ printf("n+1 = %d\n", n + 1) : 정수처럼 덧셈 연산이 가능
정수형 (2, 4, 8 byte로 구분)
- short : 2byte
→ 2byte : -32768 ~ 32767 값
= short int, signed short, signed short int
빨간 글씨는 생략될 수 있음
★ unsigned short int = unsigned short ★
#include<stdio.h>
int main(void) {
short a = 32768;
printf("%d\n", a);
return 0;
}
▶ -32768로 논리 오류 발생
→ 범위를 양수로만 표현하기 위해 unsigned short로 바꿔야 함
- 오류 수정 -
#include<stdio.h>
int main(void) {
unsigned short a = 32768;
printf("%d\n", a);
return 0;
}
★ 정수형의 가장 기본 ★
- int : 2 / 4byte (16비트 기준으로 동작)
= short int, long int, signed int, signed
빨간 글씨는 생략될 수 있음
★ unsigned int = unsigned ★
#include<stdio.h>
int main(void) {
unsigned x; // int값 범위는 +- 2100000000
x = 4200000000;
printf("%d\n", x);
return 0;
}
▶ unsigned int의 범위는 0 ~ +4200000000
▶ 입력된 x값과 다른 값이 출력됨
→ 출력 서식 문자 오류 : %d는 int에 최적화 되어있음
→ unsigned int에 맞는 출력 서식 문자 : %u
#include<stdio.h>
int main(void) {
unsigned x;
x = 4200000000;
printf("%u\n", x);
return 0;
}
- long : 4byte
→ 4byte : -2147483648 ~ 2147483647 값
= long int, signed long, signed long int
빨간 글씨는 생략될 수 있음
★ unsigned long int = unsigned long ★
- long long
양수와 음수 구분 : signed (default값)
★ unsigned : 양수(0 포함)로만 저장 ★
(signed) short d; // -32768~32767
unsigned short d; // 0~65535
≫ signed는 생략할 수 있지만 unsigned는 생략하면 signed와 같아짐
unsigned뒤에 int는 예외로 생략할 수 있음
(signed) int x; // +-21억
unsigned x; // 0~+42억
실수형
- float : 4byte
★ 실수형의 가장 기본 ★
- double : 8byte
- long double : 10byte
파생 데이터형
- 배열
- 포인터
사용자 정의형
- 구조체
- 공용체
- 열거체
'Language > C' 카테고리의 다른 글
[ C ] 문자의 2진 표현 (0) | 2021.09.13 |
---|---|
[ C ] sizeof 연산자 (0) | 2021.09.13 |
[ C ] [ 변수의 초기화 연습 문제 ] 알파벳 출력 프로그램 (0) | 2021.09.10 |
[ C ] [ 변수 연습 문제 ] 변수에 입력된 정수 출력 프로그램 (0) | 2021.09.10 |
[ C ] [ printf() 출력 연습 문제 ] 이름 출력 프로그램 (0) | 2021.09.10 |