Microsoft PowerPoint - chap03-변수와데이터형.pptx

Similar documents
PowerPoint Presentation

OCW_C언어 기초

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap04-연산자.pptx

OCW_C언어 기초

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

untitled

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - chap12-고급기능.pptx

ABC 3장

쉽게 풀어쓴 C 프로그래밍

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

PowerPoint Presentation

untitled

Microsoft PowerPoint - 2장 변수와 자료형 pptx

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - ch07 - 포인터 pm0415

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D20C1A634C0E520BAAFBCF6BFCDC0DAB7E1C7FC>

Microsoft PowerPoint - chap06-2pointer.ppt

untitled

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

PowerPoint Presentation

슬라이드 1

슬라이드 1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint 프레젠테이션

K&R2 Reference Manual 번역본

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

ABC 3장

기초컴퓨터프로그래밍

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - chap03.ppt

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시


11장 포인터

OCW_C언어 기초

KNK_C_05_Pointers_Arrays_structures_summary_v02

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

JAVA PROGRAMMING 실습 02. 표준 입출력

11장 포인터

C 프로그래밊 개요

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 이번장에서학습할내용 제 4 장변수와자료형 제 4 장변수와자료형 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다.

Microsoft PowerPoint - chap06-1Array.ppt

슬라이드 1

<4D F736F F F696E74202D2032C1D6C2F72D32C2F7BDC32028B0ADC0C7C0DAB7E D20BAAFBCF6BFCD20BFACBBEAC0DA>

03 상수, 변수, 자료형


<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

PowerPoint 프레젠테이션

02장.배열과 클래스

ABC 2장

슬라이드 1

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Microsoft PowerPoint - chap-06.pptx

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

C 프로그램의 기본

Microsoft PowerPoint - chap-05.pptx

PowerPoint Template

금오공대 컴퓨터공학전공 강의자료

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap-11.pptx

중간고사

C 언어 프로그래밊 과제 풀이

윤성우의 열혈 TCP/IP 소켓 프로그래밍

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

Chapter_06

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - ch01.ppt

14 주차구조체와공용체

Microsoft PowerPoint - chap11.ppt [호환 모드]

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Microsoft PowerPoint - Chapter_05.pptx

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

Transcription:

#include <stdio.h> int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다. 리터럴 상수, 매크로 상수, const 변수에 대해 알아본다. C 언어의 데이터 형에 대해 알아본다. 2

목차 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수는 값이 변경될 수 있는 데이터이고, 상수는 값이 변경될 수 없는 데이터이다. 4

변수 데이터를 보관해둘 필요가 있을 때, 변수를 사용한다. 변경될 수 있는 데이터는 메모리(memory)에 보관한다. 메모리는 연속된 데이터 바이트의 모임을 말하며, 메모리의 각 바이트는 주소를 갖는다. 5 변수 메모리에 저장할 데이터 값의 형식(type)에 따라 메모리가 얼마 만큼 필요한지가 결정된다. 6

변수 변수의 선언 변수를 사용하기 위해서 특정 크기의 메모리를 준비하는 것을 변수를 메모리에 할당한다 고 한다. 저장될 값의 데이터 형에 따라 필요한 만큼 메모리를 할당 7 변수 변수의 사용 변수를 선언하고 나면 변수의 이름을 이용해서 메모리에 접근할 수 있다. 특정 값을 변수에 저장하거나 메모리에 보관된 변수의 값을 읽어올 수 있다. 8

변수 변수 선언의 기본적인 형식 기본 데이터형 문자형 : char 정수형 : short, int, long 실수형 : float, double 9 10 변수 C의 데이터형

변수 식별자(identifier) : 변수를 구분하기 위해서 사용되는 이름 식별자 규칙 식별자는 반드시 영문자, 숫자, 밑줄 기호(_)만을 사용해야 한다. 식별자의 첫 글자는 반드시 영문자 또는 밑줄 기호(_)로 시작해야 한다. 식별자는 숫자로 시작해서는 안 된다. 식별자에는 밑줄 기호(_)를 제외한 다른 기호를 사용할 수 없다. 식별자는 대소문자를 구분해서 만들어야 한다. name, Name, NAME은 모두 다른 이름으로 간주된다. C 언어의 키워드(keyword)는 식별자로 사용할 수 없다. C의 키워드 11 12 변수 변수의 선언 예 올바른 변수 선언의 예 잘못된 변수 선언의 예

변수 변수 선언 시 주의 사항 변수의 선언문은 다른 모든 문장보다 앞쪽에 위치해야 한다. 13 변수 변수의 사용(1/2) 변수의 값을 읽어오거나 저장하려면 변수명을 이용한다. 14

변수 변수의 사용(2/2) 변수에 값을 저장하려면 대입연산자()를 사용한다. 15 변수 변수의 초기화(1/2) 변수를 선언할 때 따로 초기화를 하지 않으면 쓰레기 값을 갖는다. 초기화되지 않은 변수를 사용하는 것은 위험하다. 16

변수의 초기화 변수의 초기화(2/2) 변수가 처음 메모리에 할당될 때 값을 지정하는 것 17 변수 변수의 초기화 및 변수의 사용 방법 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 14: 15: /* Ex03_01.c */ #include <stdio.h> int main(void) { int amount; int price 1000; } 초기화 되지 않은 정수형 변수 초기화된 정수형 변수 printf("수량 : %d, 가격 : %d\n", amount, price); amount 100; 변수에 값 대입 price 2000; printf("수량 : %d, 가격 : %d\n", amount, price);13: return 0; 18

상수 리터럴(literal) 상수 값 자체 19 상수(Constant) 여러 가지 리터럴 상수 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: /* Ex03_02.c */ #include <stdio.h> int main(void) { char grade '\x41'; int data 0x7b; unsigned int age 75U; long filesize 1234567L; double area 123.25; double taxrate 25e-2; float temperature 17.5F; 리터널 상수로 초기화된 변수 printf("grade %c\n", grade); printf("data %d, %o, %x\n", data, data, data); printf("age %u\n", age); printf("filesize %d\n", filesize); printf("area %f, %e, %g\n", area, area, area); printf("taxrate %f\n", taxrate); printf("temperature %f\n", temperature); } return 0; 20

상수(Constant) printf 함수의 형식 문자열 21 상수 매크로 상수 #define문으로 정의되는 상수 22

상수 전처리기(preprocessor) #define문은 전처리기(또는 선행처리기)에 의해서 처리된다. 23 상수 #define문의 처리 #define문은 #define으로 정의된 매크로 상수를 특정 값으로 대치(replace)한 다. 24

상수 매크로 상수의 정의 및 사용 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: /* Ex03_03.c */ #include <stdio.h> #define MAX 100 int main(void) { int num1 MAX; int num2 MAX - 1; int num3 -MAX; 매크로 상수 정의 MAX를 100으로 바꿔서 처리 printf("num1 %d\n", num1); printf("num2 %d\n", num2); printf( num3 %d\n, num3); printf("max %d\n", MAX); } 안의 MAX는 100으로 바뀌지 않음 return 0; 25 상수 매크로 상수 정의 시 주의 사항 #define문은 C의 문장이 아니므로 #define문의 끝에는 세미콜론(;)이 필요 없 다. 매크로 상수의 값은 변경할 수 없다. 26

상수 const 변수 변수 선언 시 데이터형 앞에 const를 지정하면 값을 변경할 수 없는 변수가 된다 const 변수는 선언 시 초기화해야 한다. const 변수의 값을 변경하려고 하면 컴파일 에러가 발생한다. 27 상수(Constant) const 변수의 선언 및 사용 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: /* Ex03_04.c */ #include <stdio.h> int main(void) { const double pi 3.14; const int max; const 변수 선언 초기화 되지 않았음으로 쓰레기 값을 가짐 printf("pi %f\n", pi); printf("max %d\n", max); pi 3.1415; max 100; } const 변수는 변경할 수 없다. return 0; 28

상수 이름이 있는 상수를 기호 상수라고 한다. 기호 상수의 장점 이름이 있는 상수를 사용하면 프로그램이 수정하기 쉬워진다. 이름이 있는 상수를 사용하면 프로그램의 가독성(readability)이 향상된다. 프로그램을 수정하기 쉽다. 프로그램을 이해하기 쉽다. 29 데이터 형 C 프로그램에서 사용되는 모든 변수나 상수 값은 정해진 데이터 형을 갖는다. 데이터 형에 의해서 주어진 값의 이진 표현이 결정된다. 30

기본 데이터형(primitive data type) 문자형 : char 정수형 : short, int, long 실수형 : float, double 파생 데이터형(derived data type) 배열, 포인터 사용자 정의형(user-defined data type) 구조체, 공용체, 열거체 31 문자형 문자형 C 언어는 문자형으로 char 형을 제공한다. char 형은 1바이트 크기의 데이터 형으로 문자 코드를 저장한다. 대표적인 문자 코드로는 ASCII 코드나 한글 완성형 코드 등이 있다. 특수 문자 ASCII 코드 중 특별한 용도로 사용되는 특수 문자는 \ 와 함께 나타낸다. 32

문자형 문자의 ASCII 코드 확인 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: /* Ex03_05.c */ #include <stdio.h> int main(void) { char ch; Char 형 변수 선언 scanf("%c", &ch); printf("%c 문자의 ASCII 코드 : %d (%x)\n", ch, ch, ch); } ASCII 코드 출력 return 0; 33 문자형 특수문자 34

문자형 문자 코드 멀티바이트 문자집합(MBCS) 한 문자를 여러 바이트로 표현하는 방식 영문자는 한 바이트, 한글은 두 바이 트로 표현 유니코드 문자집합 한글과 영문 모두 한 글자를 2바이트 로 표현 char형 대신 wchar_t 형을 사용 typedef unsigned short wchar_t; 35 정수형 정수형 C 언어는 정수형으로 short, int, long을 제공한다. short형의 크기 int형의 크기 long형의 크기 정수형은 signed형과 unsigned형으로 나누어지며, signed는 생략할 수 있다. 36

정수형 정수의 표현(1/2) 부호 있는 정수형은 최상위 비트(msb)를 부호 비트로 사용한다. 부호 있는 정수형은 음수를 표현하는 데 2의 보수를 사용한다. 2의 보수를 이용한 음수 표현 37 정수형 정수의 표현(2/2) 부호 없는 정수형은 최상위 비트를 값을 저장하는 용도로 사용한다. 38

정수형의 표현 signed와 unsigned 비교 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: /* Ex03_06.c */ #include <stdio.h> int main(void) { short num1-10; unsigned short num2 num1; printf("부호 있는 정수 : %d\n", num1); printf("부호 없는 정수 : %d\n", num2); } short 형 변수에 음수 -10 저장 음수이므로 최상위 비트가 1로 설정 unsigned short 형 변수에 -10 저장 최상위 비트가 1이지만 음수가 아닌 65526임 return 0; 39 정수형 데이터 형의 유효범위 40

정수형 short 형과 unsigned short 형의 오버플로우 확인 1 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: /* Ex03_07.c */ #include <stdio.h> int main(void) { short num1 32767; short num2-32768; unsigned short num3 65535; unsigned short num4 0; num1 num2 num3 num4 num1 num2 num3 num4 printf("num1 printf("num2 printf("num3 printf("num4 } short 형 변수가 담을 수 있는 최대값으로 초기화 short 형 변수가 담을 수 있는 최소값으로 초기화 unsigned short형 변수가 담을 수 있는 최대값으로 초기화 unsigned short형 변수가 담을 수 있는 최소값으로 초기화 + 1; - 1; + 1; - 1; %d\n", %d\n", %d\n", %d\n", 오버플로우 발생 num1); num2); num3); num4); return 0; 41 정수형 정수형의 오버플로우(overflow) 데이터 형의 유효 범위를 넘어서는 것 오버플로우가 발생하면 해당 데이터형의 유효범위 내의 값으로 설정되어 버린다. 42

정수형 정수형의 언더플로우(underflow) 43 정수형 short형과 unsigned short형의 유효 범위 44

오버플로우 short형의 이진 표현 45 정수형 데이터 형의 유효 범위 limits.h에 정의된 매크로 상수 이용 46

limits.h short 형과 unsigned short 형의 오버플로우 확인 2 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 22: 23: 24: /* Ex03_08.c */ #include <stdio.h> #include <limits.h> SHRT_MAX 등의 매트로 상수가 정의된 헤더 포함 int main(void) { short num1 SHRT_MAX; short num2 -SHRT_MIN; unsigned short num3 USHRT_MAX; unsigned short num4 0; num1 num2 num3 num4 num1 num2 num3 num4 printf("num1 printf("num2 printf("num3 printf("num4 } SHRT_MAX는 short형의 최대값 SHRT_MIN은 short형의 최소값 USHRT_MAX는 unsigned short형의 최대값 + 1; - 1; + 1; - 1; %d\n", %d\n", %d\n", %d\n", num1); num2); num3); num4); return 0; 47 실수형 실수의 표현 방식 고정소수점(fixed point) 방식과 부동소수점 (floating point) 방식이 있다. 부동소수점 방식을 주로 사용 실수의 정밀도 단정도(float형)와 배정도(double형) 48

실수형 float 형과 double 형의 정밀도 비교 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: /* Ex03_09.c */ #include <stdio.h> int main(void) { float pi1 3.141592653589793; double pi2 3.141592653589793; printf("float 형의 pi 값 : %f\n", pi1); printf("double 형의 pi 값 : %f\n", pi2); %f 는 소수점 이하 6자리까지 출력 printf("float 형의 pi 값 : %30.25f\n", pi1); printf("double 형의 pi 값 : %30.25f\n", pi2); } %30.25f 는 소수점 이하 25자리 출력 return 0; 49 실수형 float 형의 오버플로우와 언더플로우 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: /* Ex03_10.c */ #include <stdio.h> int main(void) { float num1 3.5e39; float num2 1.8e-39; float형으로 표현할 수 없는 값 printf("num1 %30.25f\n", num1); printf("num2 %30.25f\n", num2); } return 0; 50

sizeof 연산자 sizeof 연산자 주어진 값이나 데이터 형의 바이트 크기를 구한다. 51 sizeof 연산자 sizeof 연산자의 사용(1/2) 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: /* Ex03_11.c */ #include <stdio.h> int main(void) { char ch; int num; double fnum; printf("ch 의 바이트 크기 : %d\n", sizeof ch); printf("num 의 바이트 크기 : %d\n", sizeof num); printf("fnum의 바이트 크기 : %d\n", sizeof fnum); 변수나 상수의 크기를 구하려면 sizeof 연산자 이용 printf("3.14f의 바이트 크기 : %d\n", sizeof 3.14f); 52

sizeof 연산자 sizeof 연산자의 사용(2/2) 16: 17: 18: 19: 20: 21: 22: 23: 24: } printf("char 형의 바이트 크기 : %d\n", sizeof(char)); printf("short 형의 바이트 크기 : %d\n", sizeof(short)); printf("int 형의 바이트 크기 : %d\n", sizeof(int)); printf("long 형의 바이트 크기 : %d\n", sizeof(long)); printf("float 형의 바이트 크기 : %d\n", sizeof(float)); printf("double 형의 바이트 크기 : %d\n", sizeof(double)); 데이터형의 크기를 구하려면 sizeof 이용 return 0; 53 학습정리 변수 : 값이 변경될 수 있는 데이터, 값을 보관하기 위해서 메모리 사용 변수의 선언 : 데이터형과 변수명이 필요 int grade; 변수의 사용 : 변수의 이름을 이용 변수의 초기화 : 변수를 초기화하지 않으면 쓰레기 값을 가지므로, 초기화하는 것 이 좋다. int grade 100; 상수 : 프로그램에서 값이 변경되지 않는 요소, 리터럴 상수와 매크로 상수, const 변수가 있다. A, 10, 3.14 Æ 리터럴 상수 #define MAX 100 Æ 매크로 상수 const int max 100; Æ const 변수 54

학습정리 데이터 형 문자형 : char형이 있으며, 문자 코드를 저장한다. 정수형 : short, int, long형이 있으며, 부호 있는 정수(signed)와 부호 없는 정수 (unsigned)로 나누어진다. 실수형 : float형과 double형이 있다. sizeof 연산자 : 데이터 형이나 변수의 바이트 크기를 구한다. 55 수고하셨습니다. 질문 있습니까? NEXT Chapter 4장. 연산자 56