프로그래밍 언어 활용 part 1 - 변수와 데이터형
변수와 데이터형
[학습내용] | [학습목표] |
· 변수와 상수 · 데이터타입 |
· 변수와 상수를 정의할 수 있다. · 변수 선언 시 사용되는 다양한 데이터타입을 알고 사용할 수 있다. · 형식지정자를 알고 변수값을 출력할 수 있다 |
변수와 상수
1. 변수
변수 프로그램 수행 시 데이터를 보관할 수 있는 공간
• 메모리에 저장공간 확보
• 방법에 따라 크기와 용도가 다르게 생성
• 유일한 이름(Identifier) 부여
• 메모리에 대한 심볼릭 표현
변수선언
• 변수는 사용 전 반드시 먼저 선언해야 함
• 필요 시 선언과 동시에 초기화도 가능함
• 변수선언문 기본 형식
- 데이터타입 변수명;
- 데이터타입 변수명1, 변수명2, …… ;
• 변수명은 식별자 생성 규칙을 적용함
식별자(Identifier)
• 변수를 구분하기 위해서 사용되는 이름
• 식별자 규칙
- 식별자는 반드시 영문자, 숫자, 밑줄 기호(_)만을 사용해야 함
- 식별자의 첫 글자는 반드시 영문자 또는 밑줄 기호(_)로 시작해야 함 ※식별자는 숫자로 시작해서는 안됨
- 식별자에는 밑줄 기호(_)를 제외한 다른 기호를 사용할 수 없음
- 식별자는 대소문자를 구분해서 만들어야 함
(name, Name, NAME은 모두 다른 이름으로 간주됨)
- C 언어의 예약어는 식별자로 사용할 수 없음
예약어 |
if / and / printf / switch / case / break / continue int / char / float / while / for / double / return … |
식별자 생성
올바른 변수 선언의 예 | 잘못된 변수 선언의 예 |
• kim KOR Elec count | • 4su |
• _eng st1_height openDate | • mat*st student?3 wine-list |
• score3 | • for char |
변수 활용
• 초기화는 =(대입연산자)를 이용
변수명 = 값 ;
2. 상수
상수(Constant)
• 변하지 않는 자료값
• 보관되는 값에 따라 의미가 변하는 것이 변수
리터럴상수(Literal Constant) : 정수형, 실수형, 문자형
심볼릭상수(Symbolic Constant) : const 상수, 매크로 상수, 열거형 상수
매크로 상수
• #define문으로 정의되는 상수
형식 |
#define 매크로이름 상수 #define MAX 100 #define TOTAL 300 #define RATE 0.7 |
데이터 타입
1. 개요
• C 프로그램에서 사용되는 모든 변수나 상수 값은 정해진 데이터형을 가짐
• 데이터형에 의해서 주어진 값의 이진 표현이 결정됨
기본데이터형(Primitive Data Type) | 파생 데이터형(Derived Data Type) | 사용자 정의형(User-defined Data Type) |
• 문자형 : char • 정수형 : short, int, long, long long • 실수형 : float, double, long double |
• 배열 • 포인터 |
• 구조체 • 공용체 • 열거체 |
2. 문자형
데이터형 | 의미 | 크기 |
char | char | 1byte |
unsigned | 부호 없는 문자형 | 1byte |
문자형 변수 선언 | |
char 변수명; | char a; |
char 변수명, 변수명, … 변수명; | char a,b,c; |
char 변수명 = ‘초기값’; | char a=‘k’; |
3. 정수형
• C 언어는 정수형으로 short, int, long을 제공함
• 크기 비교 : short ≤ int ≤ long
데이터형 | 의미 | 크기 |
short | short | 2 |
unsigned short | unsigned short int | |
int | signed in | 4 |
unsigned int | unsigned in | |
long | signed long int | 4 |
unsigned long | unsigned long int | |
long long | signed long long int | 8 |
unsigned long long | unsigned long long int |
정수의 표현
- 부호가 있는 정수형은 최상위 비트(msb)를 부호 비트로 사용함
- 부호가 있는 정수형은 음수를 표현하는데 2의 보수를 사용함
- 부호가 없는 정수형은 최상위 비트값을 저장하는 용도로 사용함
데이터형의 유효 범위
분류 | 데이터형 | 바이트 크기 | 유효 범위 |
문자형 | char | 1 | -128(-27) ~ 127(27-1) |
unsigned char | 1 | 0~255(28-1) | |
정수형 |
short | 2 | -32768(-215) ~ 32767(215-1) |
unsigned short | 2 | 0~65535(216-1) | |
int | 4 | -2147483648(-231) ~ 2147483647(231-1) | |
unsigned int | 4 | 0~4294967295(232-1) | |
long | 4 | -2147483648(-231) ~ 2147483647(231-1) | |
unsigned long | 4 | 0~4294967295(232-1) | |
float | 4 | ±1.17549×10-38 ~ ±3.40282×1038 | |
double | 8 | ±2.22507×10-308 ~ ±1.79769×10308 | |
long double | 8 | ±2.22507×10-308 ~ ±1.79769×10308 |
4. 실수형
실수의 표현 방식
- 고정소수점(Fixed Point) 방식
- 부동소수점(Floating Point) 방식 ➡ 주로 사용
실수의 정밀도
- 단정도 (Float형)
- 배정도 (Double형)
5. 형식지정자
형식지정자를 이용한 printf() 출력
printf(“%c”,’a’);
printf(“%d”,5);
printf(“%f”,7.5);
int a;
a = 15;
printf(“%d”,a)
서식문자 | 설명 |
%c | 문자 출력 |
%d | 정수값 출력 |
%o | 8진수로 출력 |
%x, %X, %#x | 16진수 출력, x는 2a와 같이 소문자, X는 2A, #은 0x2a |
%u | 부호 없는 십진수 |
%e, %E | 지수형식 출력(1.23e+05) |
%f, %lf | 실수값 출력, lf는 long double |
%s | 문자열 출력 |
평가하기
Q1. 다음 중 식별자로 잘못된 것은 무엇인가?
① width
② HELLO
③ good_num
④ 23student
식별자는 제일 앞에 숫자로 시작할 수 없습니다.
Q2. 변수에 값을 보관할 때 사용되는 대입연산자는 무엇인가?
① ==
② =
③ <=
④ -
대입연산자는 = 입니다.
Q3. 다음 중 실수형 데이터타입이 아닌 것은 무엇인가?
① long
② float
③ double
④ long double
long은 long int를 의미하며 정수형 데이터타입입니다.
학습정리
1. 변수와 상수
• 변수는 프로그램 수행 시 필요한 자료 값을 보관할 수 있는 공간을 의미함
• 변수는 사용 젂 반드시 선언을 먼저 해야 함
• 식별자는 영문 대소문자, 숫자, 밑줄 기호(_)를 이용하여 만듦
• 식별자 생성 시 예약어는 사용할 수 없음
• 상수란 의미가 변하지 않는 자료 값을 의미함
• 저장할 데이터의 종류와 크기에 따라 다양한 데이터타입이 있
2. 데이터타입
• 저장할 데이터의 종류와 크기에 따라 다양한 데이터타입이 있음
• 문자형 데이터타입으로 char이 있음
• 정수형 데이터타입으로 short, int, long, long long이 있음
• 실수형 데이터타입으로 float, double, long double이 있음
• 변수값을 출력 시 형식 지정자를 사용하여 출력할 수 있음