Download presentation
Presentation is loading. Please wait.
1
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모
2
이 장의 내용 자료형이란 무엇인가? 상수와 변수 정수형 부동소수형 문자형 © 우균, 창병모
3
3.1 자료형이란 무엇인가? © 우균, 창병모
4
자료형이란 무엇인가? 자료형(data type) C 언어의 자료형 프로그램에서 표현 혹은 저장하는 데이터의 종류 혹은 유형
© 우균, 창병모
5
3.2 변수/3.3 상수 © 우균, 창병모
6
변수 변수(variable) 사용 전 변수 선언 자료형 변수이름; 데이터를 저장하는 데 사용되는 기억 장소의 이름이다.
변수 이름과 저장할 데이터 값의 유형(자료형)을 지정해야 한다. 자료형 변수이름; char c; short sum; © 우균, 창병모
7
메모리와 변수 변수를 위한 메모리 할당 문자형 변수 c를 위해서는 1 바이트를 할당
short 변수 sum에 대해서는 2 바이트를 할당 © 우균, 창병모
8
상수 상수(constant) 프로그램이 실행되는 동안 값이 변하지 않는 데이터
정수형 상수, 문자형 상수, 부동소수형 상수로 구분할 수 있다. 예 'A', 'x'는 문자형 상수 -10, 0, 55는 정수형 상수 3.14, 는 부동소수형 상수 © 우균, 창병모
9
식별자 식별자 변수, 상수, 함수 등에 대한 이름 문자와 숫자로 구성되며 첫 번째 글자는 반드시 문자
밑줄문자’_’도 하나의 문자로 사용될 수 있음 대소문자를 구별 © 우균, 창병모
10
변수의 초기화 변수를 선언하면서 그 초기값을 정할 수도 있다 변수 초기화는 반드시 해야 하는 것은 아니고 선택사항
int sum = 0; © 우균, 창병모
11
변수의 초기화 © 우균, 창병모
12
대입문을 이용한 변수 값 변경 대입문(assignment statement) sum = 10;
변수에 새로운 값을 저장함으로써 기존 값을 변경한다. 대입 연산자(=)의 오른쪽 식이 계산되고, 그 결과 값이 왼쪽 변수에 저장된다. sum = 10; © 우균, 창병모
13
score.c © 우균, 창병모
14
변수 값 변경 과정 © 우균, 창병모
15
변수 값 증가 대입문 오른쪽과 왼쪽에 나타난 변수는 다른 의미 대입문 오른쪽 변수는 그 변수로부터 읽어온 값을 의미
대입문 왼쪽 변수는 그 변수에 저장(쓰기) 의미 변수에 접근(읽기)은 그 값을 변경시키지 않음. 변수에 대입(쓰기)은 이전 데이터를 새로운 데이터로 대체 sum = sum + 1; © 우균, 창병모
16
© 우균, 창병모
17
const int MAX_STUDENT = 20000;
이름 상수 이름 상수(named constant) 상수에 이름이 부여되어 있는 것. 이름상수에는 식별자가 부여되어 있으므로 이름상수는 변수와 유사하지만 상수이므로 값을 변경할 수 없다. 예약어 const const int MAX_STUDENT = 20000; © 우균, 창병모
18
3.4 정수형 © 우균, 창병모
19
정수형 크게 4개의 정수형 char, short, int, long © 우균, 창병모
20
정수 표현 8 비트를 이용한 양수와 음수 표현 예 음수 표현 첫 번째 비트는 부호 비트로서, 0은 양수 1은 음수를 나타낸다.
나머지 7개의 비트들은 수의 크기를 나타낸다. 음수 표현 연산의 효율성을 위해 수의 크기를 2의 보수 형태로 나타낸다. © 우균, 창병모
21
양수, 음수 표현 © 우균, 창병모
22
변수에 기억공간 할당 기억공간 할당 sizeof() 연산자 정수형 종류에 따라 해당 변수에 다른 크기로 할당
자료형의 크기를 나타내는 연산자 © 우균, 창병모
23
© 우균, 창병모
24
정수형 오버플로우 정수형 오버플로우 예 32비트 int 질문 long budget = 237000000000000L;
정수형에서 저장할 수 있는 수보다 더 큰 수나 더 작은 수를 저장 예 32비트 int 가장 큰 수(231-1 = 2,147,483,647)에 1을 더하면 어떻게 될까? 질문 long budget = L; © 우균, 창병모
25
unsigned 정수형 0과 양의 정수만을 나타낼 수 있는 unsigned 정수형
음수를 표현할 수 없는 대신에 나타낼 수 있는 양의 정수가 두 배 © 우균, 창병모
26
3.5 부동소수형 © 우균, 창병모
27
부동소수형 C 언어의 3개의 부동소수형 부동소수점(floating-point)이란?
float, double, long double 부동소수점(floating-point)이란? 부동소수점에서 점(point)은 소수점을 말하며, 이 소수점이 수의 어느 위치에도 올 수 있으므로 부동소수점이라고 한다. © 우균, 창병모
28
부동소수형 표현 float 형 자료의 저장과 표현 범위 double 형 자료의 저장과 표현 범위
© 우균, 창병모
29
© 우균, 창병모
30
3.6 문자형 © 우균, 창병모
31
문자형 각 문자에 고유번호를 부여한 코드를 사용하여 표현한다. C에서는 ASCII 코드를 사용한다.
ASCII(American Standard Code for Information Interchange) 128개의 문자를 7 비트를 사용하여 표현(8비트로 확장됨) 대문자(A, B, C 등등) 소문자(a, b, c 등등) 구두점(punctuation)(마침표, 세미콜론, 쉼표 등등) 숫자(digit)(0에서 9까지) 공백 문자(‘ ’) 특수 문자(&, |, \ 등) 제어 문자 열복귀(carriage return), 널(null), 문서-끝-표시자(end-of-text) 액센트(accent)가 있는 문자 © 우균, 창병모
32
ASCII 코드표 표 3.1) ASCII 코드 표 © 우균, 창병모
33
© 우균, 창병모
34
© 우균, 창병모
35
문자형 관련 입출력 함수 문자형 관련 입출력 함수 int getchar() int putchar(int c)
매개변수가 없으며 한 문자를 읽어 그 문자의 ASCII 값을 반환한다. 파일 끝에 도달하면 EOF 를 반환한다. <stdio.h> 파일을 #include 해야 한다. int putchar(int c) 한 글자를 받아 화면에 출력하고 출력한 문자의 ASCII 값을 반환한다. 오류 시에는 EOF 를 반환한다. <stdio.h> 파일을 #include 해야 한다. 다음 예제 프로그램 char.c ① 키보드로부터 한 개 문자 읽기 ② 문자로 출력 ③ ASCII 값을 보기 위해 정수로 출력 © 우균, 창병모
36
char.c © 우균, 창병모
37
© 우균, 창병모
38
이스케이프 시퀀스 이스케이프 시퀀스(escape sequence)
백슬래쉬 문자(\)로 시작하고, 다음 문자는 특별한 방식으로 해석 예를 들어 이중 인용부호 문자(") 출력: \" © 우균, 창병모
39
© 우균, 창병모
40
Key Point © 우균, 창병모
41
▶ Key Point C 언어는 크게 1개의 문자형, 4개의 정수형, 3개의 부동소수형을 제공한다.
변수는 데이터를 저장하는 데 사용되는 저장 장소의 이름이다. 변수에 대한 접근(읽기)은 메모리에서 그 값이 변경되지 않으나, 변수에 대한 대입(쓰기)은 이전의 데이터가 새로운 데이터로 대체된다. 상수 값은 변경할 수 없다. 음수는 연산의 효율성을 위해 수의 크기를 2의 보수 형태로 나타낸다. C 언어는 8-비트 ASCII 문자 집합을 사용하여 문자를 표현한다. © 우균, 창병모
42
프로그래밍 실습 © 우균, 창병모
43
▶ 프로그래밍 실습 1 1. ASCII 코드표의 일부를 프린트하는 프로그램을 작성한다.
다음 선언을 가정하여 프로그램을 작성한다. int main( ) { char c; } (1) 각 알파벳 대문자와 그 코드 값을 프린트한다. 변수 c에 문자 'A'를 대입한 후에 1씩 증가시키면서 26개를 차례로 프린트한다. (2) 각 알파벳 소문자와 그 코드 값을 프린트한다. 변수 c에 문자 'a'를 대입한 후에 1씩 증가시키면서 26개를 차례로 프린트한다. (3) 숫자와 그 코드 값을 프린트한다. 변수 c에 문자 '0'을 대입한 후에 1씩 증가시키면서 10개를 차례로 프린트한다. © 우균, 창병모
44
▶ 프로그래밍 실습 2 2. 5의 배수를 순서대로 계산하여 프린트하고 그 합을 계산하여 프린트한다.
(1) int 변수 i를 선언하고 0으로 초기화한다. 이 변수를 5씩 증가하면서 50까지의 5의 배수를 프린트하는 프로그램을 작성하라. int main( ) { int i; } (2) 실습 1의 프로그램을 확장하여 0부터 50 사이의 5의 배수들의 합을 계산하여 프린트하는 프로그램을 작성하라. © 우균, 창병모
Similar presentations