Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Part 03 상수, 변수, 자료형 안산 1 대학 디지털정보통신과 임 성 국. 2 이 장의 내용 자료형이란 무엇인가 ? 상수와 변수 정수형 부동소수형 문자형.

Similar presentations


Presentation on theme: "1 Part 03 상수, 변수, 자료형 안산 1 대학 디지털정보통신과 임 성 국. 2 이 장의 내용 자료형이란 무엇인가 ? 상수와 변수 정수형 부동소수형 문자형."— Presentation transcript:

1 1 Part 03 상수, 변수, 자료형 안산 1 대학 디지털정보통신과 임 성 국

2 2 이 장의 내용 자료형이란 무엇인가 ? 상수와 변수 정수형 부동소수형 문자형

3 3 3.1 자료형이란 무엇인가 ?

4 4 자료형이란 무엇인가 ? 자료형 (data type)  프로그램에서 표현 혹은 저장하는 데이터의 종류 혹은 유형 C 언어의 자료형  C 언어는 1 개의 문자형, 3 개의 정수형, 3 개의 부동소수형을 제공 C 언어의 자료형 분류 자료형크기에 따라 문자형 char 정수형 shortintlong 부동소수형 floatdoublelong double

5 5 3.2 변수 /3.3 상수

6 6 변수 변수 (variable)  데이터를 저장하는 데 사용되는 기억 장소의 이름이다. 사용 전 변수 선언  변수 이름과 저장할 데이터 값의 유형 ( 자료형 ) 을 지정해야 한다. 자료형 변수이름 ; char c; short sum;

7 7 메모리와 변수 변수를 위한 메모리 할당  문자형 변수 c 를 위해서는 1 바이트를 할당  short 변수 sum 에 대해서는 2 바이트를 할당 1278 1279 1280 1281 1282 1283 1284 1285 1286 sum 10011010 c 메모리와 변수

8 8 상수 상수 (constant)  프로그램이 실행되는 동안 값이 변하지 않는 데이터  정수형 상수, 문자형 상수, 부동소수형 상수로 구분할 수 있다.  예 'A', 'x' 는 문자형 상수 -10, 0, 55 는 정수형 상수 3.14, 300.25 는 부동소수형 상수

9 9 식별자  변수, 상수, 함수 등에 대한 이름  문자와 숫자로 구성되며 첫 번째 글자는 반드시 문자  밑줄문자 ’_’ 도 하나의 문자로 사용될 수 있음  대소문자를 구별 바른 식별자, 잘못된 식별자 바른 이름잘못된 이름 x25 X age01 sum _jumsu address_01 25x X# 01age sum* -jumsu address-01

10 10 변수의 초기화 변수를 선언하면서 그 초기값을 정할 수도 있다 변수 초기화는 반드시 해야 하는 것은 아니고 선택사항 int sum = 0; 0 sum

11 11 변수의 초기화 실행결과 : 합이 0 입니다. 합이 10 입니다.

12 12 대입문을 이용한 변수 값 변경 대입문 (assignment statement)  변수에 새로운 값을 저장함으로써 기존 값을 변경한다.  대입 연산자 (=) 의 오른쪽 식이 계산되고, 그 결과 값이 왼쪽 변수 에 저장된다. sum = 10; 10 sum

13 13 score.c 실행결과 : 첫 번째 점수는 7 두 번째 점수는 10 세 번째 점수는 8 네 번째 점수는 9

14 14 변수 값 변경 과정 7 score 10 score 8 초기화 후 첫 번째 대입 후 두 번째 대입 후

15 15 변수 값 증가 대입문 오른쪽과 왼쪽에 나타난 변수는 다른 의미  대입문 오른쪽 변수는 그 변수로부터 읽어온 값을 의미  대입문 왼쪽 변수는 그 변수에 저장 ( 쓰기 ) 의미  변수에 접근 ( 읽기 ) 은 그 값을 변경시키지 않음.  변수에 대입 ( 쓰기 ) 은 이전 데이터를 새로운 데이터로 대체 10  11 sum +1 10 읽기 11 저장 sum = sum + 1;

16 16 scoreSum.c 실행결과 : 첫 번째 점수 : 7 현재 합 : 7 두 번째 점수 : 10 현재 합 : 17 세 번째 점수 : 8 현재 합 : 25 네 번째 점수 : 9 현재 합 : 34

17 17 이름 상수 이름 상수 (named constant)  상수에 이름이 부여되어 있는 것.  이름상수에는 식별자가 부여되어 있으므로 이름상수는 변수와 유사하지만 상수이므로 값을 변경할 수 없다.  예약어 const const int MAX_STUDENT = 20000;

18 18 3.4 정수형

19 19 정수형 크게 4 개의 정수형  char, short, int, long C 의 기본 정수형의 범위 예 (Microsoft Visual C/C++ 6.0) 자료형기억장소최소값최대값 char 8 비트 -2 7 = -1282 7 -1 = 127 short 16 비트 -2 15 = -32,7682 15 -1 = 32,767 int 32 비트 -2 31 = -2,147,483,6482 31 -1 = 2,147,483,647 long 32 비트 -2 31 = -2,147,483,6482 31 -1 = 2,147,483,647 long long* 64 비트 -2 64 = -9,223,372,036,854,775,8082 63 -1 = 9,223,372,036,854,775,807 * long long 은 MS Visual C/C++ 6.0 에서는 지원되지 않음. 여기서 long long 은 gcc 컴파일러의 예

20 20 정수 표현 8 비트를 이용한 양수와 음수 표현 예  첫 번째 비트는 부호 비트로서, 0 은 양수 1 은 음수를 나타낸다.  나머지 7 개의 비트들은 수의 크기를 나타낸다. 음수 표현  연산의 효율성을 위해 수의 크기를 2 의 보수 형태로 나타낸다. +5, -5 의 표현 수의 표현이진수 +500000101 5 의 1 의 보수 11111010 5 의 2 의 보수 11111011 -511111011

21 21 양수, 음수 표현 양수이진수음수이진수 +127 0111111 1 -128 1000000 0 +126 0111111 0 -127 1000000 1... +5 0000010 1 -6 1111101 0 +4 0000010 0 -5 1111101 1 +3 0000001 1 -4 1111110 0 +2 0000001 0 -3 1111110 1 +1 0000000 1 -2 1111111 0 0 0000000 0 1111111 1

22 22 변수에 기억공간 할당 정수형 종류에 따라 해당 변수에 다른 크기 기억공간 할당 자료형의 크기를 나타내는 sizeof() 연산자 실행결과 : char 크기 : 1 short 크기 : 2 int 크기 : 4 long 크기 : 4

23 23 korea.c 실행결과 : 대한민국에 대한 데이터입니다 대학수 : 276 인구 : 48295000 예산 : -590360576 원

24 24 정수형 오버플로우  정수형에서 저장할 수 있는 수보다 더 큰 수나 더 작은 수를 저장 예 32 비트 int  가장 큰 수 (2 31 -1 = 2,147,483,647) 에 1 을 더하면 어떻게 될까 ? 01111111 11111111 11111111 11111111 + 00000000 00000000 00000000 00000001 -------------------------------------------------- 10000000 00000000 00000000 00000000 질문 long budget = 237000000000000L;

25 25 unsigned 정수형 0 과 양의 정수만을 나타낼 수 있는 unsigned 정수형 음수를 표현할 수 없는 대신에 나타낼 수 있는 양의 정수 가 두 배 C 의 unsigned 정수형의 표현범위 자료형기억장소최소값최대값 unsigned char 8 비트 02 8 -1 = 255 unsigned short 16 비트 02 16 -1 = 65,535 unsigned int 32 비트 02 32 -1 = 4,294,967,295 unsigned long 64 비트 02 64 -1 = 18,446,744,073,709,551,615

26 26 3.5 부동소수형

27 27 부동소수형 C 언어의 3 개의 부동소수형  float, double, long double 부동소수점 (floating-point) 이란 ?  부동소수점에서 점 (point) 은 소수점을 말하며, 이 소수점이 수의 어느 위치에도 올 수 있으므로 부동소수점이라고 한다. 부동소수형의 예 (Microsoft Visual C/C++ 6.0) 자료형 기억장 소 최소값최대값 float 4 바이트 7 개의 유효숫자를 가지며, - 1.0E+38 의 근사값 7 개의 유효숫자를 가지며, 1.0E+38 의 근사값 double 8 바이트 15 개의 유효숫자를 가지며, - 1.0E+308 의 근사값 15 개의 유효숫자를 가지며, 1.0E+308 의 근사값 long double 8 바이트 15 개의 유효숫자를 가지며, - 1.0E+308 의 근사값 15 개의 유효숫자를 가지며, 1.0E+308 의 근사값

28 28 부동소수형 표현 float 형 자료의 저장과 표현 범위  아래 double 형과 유사하게 부호, 지수부, 가수부로 나뉘어짐  전체 비트 수가 double 보다 작을 수 있음 ( 예 : 16 비트 ) double 형 자료의 저장과 표현 범위 부호 지수부 가수부 8 바이트 (32 비트 )

29 29 float.c 실행결과 : 0.1234567910432815600 0.1234567890123456800 float 크기 : 4 double 크기 : 8 long double 크기 : 8

30 30 3.6 문자형

31 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 32 ASCII 코드표 표 3.1) ASCII 코드 표

33 33 code.c 실행결과 : a 97 A 65 1 49 $ 36 + 43 a 97 A 65 1 49 $ 36 + 43

34 34 문자형 관련 입출력 함수  getchar()  putchar() int getchar()  매개변수가 없으며 한 문자를 읽어 그 문자의 ASCII 값을 반환한다. 파일 끝에 도달하면 EOF 를 반환한다. 파일을 #include 해야 한다. int putchar(int c)  한 글자를 받아 화면에 출력하고 출력한 문자의 ASCII 값을 반환한다. 오 류 시에는 EOF 를 반환한다. 파일을 #include 해야 한다. 다음 예제 프로그램 char.c  ① 키보드로부터 한 개 문자 읽기  ② 문자로 출력  ③ ASCII 값을 보기 위해 정수로 출력

35 35 char.c 실행결과 : 한 문자를 입력하시오 : A 읽은 문자 : A 읽은 문자의 ASCII 값 : 65

36 36 putchar.c 실행결과 : Hello!

37 37 이스케이프 시퀀스 이스케이프 시퀀스 (escape sequence)  백슬래쉬 문자 ( \ ) 로 시작하고, 다음 문자는 특별한 방식으로 해석  예를 들어 이중 인용부호 문자 (") 출력 : \ " 이스케이프 시퀀스 의미 \b 백스페이스 \t 탭 \n 개행 \r 열복귀 \" 이중 인용부호 \' 단일 인용부호 \\ 백슬래쉬

38 38 escape.c

39 39 Key Point

40 40 ▶ Key Point C 언어는 1 개의 문자형, 3 개의 정수형, 3 개의 부동소수형을 제공 변수는 데이터를 저장하는 데 사용되는 저장 장소의 이름 변수에 대한 접근 ( 읽기 ) 은 메모리에서 그 값이 변경되지 않으나, 변 수에 대한 대입 ( 쓰기 ) 은 이전의 데이터가 새로운 데이터로 대체됨 상수 값은 변경할 수 없음 음수는 연산의 효율성을 위해 2 의 보수 형태로 나타낸다. C 언어는 ASCII 문자 집합을 사용하여 문자를 표현한다. 이때 필요 한 비트는 8- 비트 이다.

41 41 프로그래밍 실습

42 42 ▶ 프로그래밍 실습 1 1. ASCII 코드표의 일부를 프린트하는 프로그램을 작성한다. 다음 선언을 가정하여 프로그램을 작성한다. int main( ) { char c; } (1) 각 알파벳 대문자와 그 코드 값을 프린트한다. 변수 c 에 문자 'A' 를 대입한 후에 1 씩 증가시키면서 26 개를 차례로 프린트한다. (2) 각 알파벳 소문자와 그 코드 값을 프린트한다. 변수 c 에 문자 'a' 를 대입한 후에 1 씩 증가시키면서 26 개를 차례로 프린트한다. (3) 숫자와 그 코드 값을 프린트한다. 변수 c 에 문자 '0' 을 대입한 후에 1 씩 증가시키면서 10 개를 차례로 프린트한다.

43 43 ▶ 프로그래밍 실습 2 2. 5 의 배수를 순서대로 계산하여 프린트하고 그 합을 계산하여 프린트한다. (1) int 변수 i 를 선언하고 0 으로 초기화한다. 이 변수를 5 씩 증가하면서 50 까지 의 5 의 배수를 프린트하는 프로그램을 작성하라. int main( ) { int i; } (2) 실습 1 의 프로그램을 확장하여 0 부터 50 사이의 5 의 배수들의 합을 계산하 여 프린트하는 프로그램을 작성하라.


Download ppt "1 Part 03 상수, 변수, 자료형 안산 1 대학 디지털정보통신과 임 성 국. 2 이 장의 내용 자료형이란 무엇인가 ? 상수와 변수 정수형 부동소수형 문자형."

Similar presentations


Ads by Google