슬라이드 1

Similar documents
K&R2 Reference Manual 번역본

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

OCW_C언어 기초

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

Microsoft PowerPoint - Chapter_04.pptx

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

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

PowerPoint Presentation

Microsoft PowerPoint - chap06-2pointer.ppt

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

OCW_C언어 기초

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

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

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

Microsoft PowerPoint - chap04-연산자.pptx

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

Microsoft PowerPoint - [2009] 02.pptx

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - ch07 - 포인터 pm0415

C 프로그래밊 개요

PowerPoint 프레젠테이션

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

중간고사

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx

슬라이드 1

untitled

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

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

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - lec2.ppt

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

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

슬라이드 1

강의 개요

03 상수, 변수, 자료형

본 강의에 들어가기 전

Microsoft PowerPoint - c2.ppt

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

untitled

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

Microsoft PowerPoint - chap05-제어문.pptx

PowerPoint Presentation

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint 프레젠테이션

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

untitled

쉽게 풀어쓴 C 프로그래밍

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

03장.스택.key

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

쉽게 풀어쓴 C 프로그래밍

11장 포인터

컴파일러

C프로-3장c03逞풚

쉽게 풀어쓴 C 프로그래밍


ABC 3장

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

chap10.PDF

PowerPoint 프레젠테이션

초보자를 위한 C# 21일 완성

13주-14주proc.PDF

Microsoft PowerPoint - Chapter_02.pptx

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

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

PowerPoint Presentation

C# Programming Guide - Types

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 \

PowerPoint 프레젠테이션

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

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

02장.배열과 클래스

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

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

C++ Programming

본 강의에 들어가기 전

ABC 2장

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

프로그래밍 및 연습 1

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

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

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1


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

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

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터

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

PowerPoint Presentation

PowerPoint Presentation

Chapter 4. LISTS

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

Microsoft PowerPoint - es-arduino-lecture-03

기초컴퓨터프로그래밍

chap 5: Trees

PowerPoint Presentation

Transcription:

3. 자료와변수

3.1 자료형

자료형 컴퓨터는숫자 (= 데이터 ) 를다룬다. 컴퓨터가다룰수있는숫자의유형이있다. C 언어에서의자료형 크기 (byte) 정수형 ( 문자형 ) char 1 정수형 실수형 ( 부동소수형 ) short 2 int 4 long 4 long long 8 float 4 double 8 long double 8 / 16 강 C 프로그래밍 3

정수형 정수형이란 가장많이사용되는자료형 정수형의종류 자료형 크기 (byte) 범위 char 1-128 ~ 127 short 2-32,768 ~ 32,767 int 4-2,147,483,648 ~ 2,147,483,647 long 4-2,147,483,648 ~ 2,147,483,647 long long 8 약 -922경 ~ 922경 ( 이하자리생략 ) 강 C 프로그래밍 4

정수형 자료형의선택 자료의범위를수용할수있어야한다. 가능하면작은크기의자료형이좋다.( 메모리사용량, 계산속도 ) int 형 과거의 int 형은 16비트였으나, 현재는 32비트 미래에 64비트이상이될수도있음. char 형 정수형이며, 문자를저장하는목적으로사용할수있기에문자형으로볼수도있다. 강 C 프로그래밍 5

실수형 실수 소수점이하가존재 부동소수형 (floating point) 정수에비해훨씬큰숫자, 또는훨씬미세한숫자 자료형 크기 (byte) 유효자리 범위 float 4 7 ±10-38 ~ 10 38 double 8 15 ±10-308 ~ 10 308 long double 8 15 ±10-308 ~ 10 308 Visual Studio 에서만 long double 이 8 바이트이고, 대부분 12/16 바이트이다. 강 C 프로그래밍 6

실수형 - 3.4 * 10 38-3.4 * 10-37 3.4 * 10-37 3.4 * 10 38-0 float 형 + - 1.7 * 10 308-1.7 * 10-307 1.7 * 10-307 1.7 * 10 308-0 double 형 + 강 C 프로그래밍 7

실수형 단점 유효자리가있다. ( 생각보다짧다 ) 처리속도가느리다. 오차의발생가능성이많다. 실수의단점이치명적인분야라면 해결책을개발자가찾아야한다. 강 C 프로그래밍 8

문자형 컴퓨터는숫자만다룬다. 일정범위의숫자에문자를할당하여문자를처리할수있도록 한다. char 형은문자를저장하기에적합한크기의자료형이다. (int 는?) ASCII Code 0~127 까지의숫자에문자를대응시켜문자저장용으로쓴다. ASCII Code 는숫자를문자처럼해석하는하나의방법이다. 대표적인문자의 ASCII Code 0~9 48 ~ 57 대문자 A, 소문자 a 65, 97 강 C 프로그래밍 9

문자형 ASCII Code table 강 C 프로그래밍 10

unsigned 형 정수형자료형에 unsigned 를추가하여범위를두배로사 용 자료형 범위 unsigned char 0 ~ 255 unsigned short 0 ~ 65,535 unsigned int 0 ~ 4,294,967,295 unsigned long 0 ~ 4,294,967,295 unsigned long long 0 ~ 1800경 음수를넣어서는안되는경우보호장치로사용가능 기본제공되지않는자료형은개발자가만들어서사용해야한다. 강 C 프로그래밍 11

C 언어자료형의이해 무조건큰범위의자료형을선택한다면? 모든정수는 long long? 모든실수는 long double? 메모리는소중하다. 정수 (int) 1개는 4 바이트를차지하지만, 정수 (int) 10억개는 4GB를차지한다. 짧은단위일수록처리속도가빠르다. char 형덧셈이 long long형덧셈보다훨씬빠르다. 정수형연산이실수형연산보다훨씬빠르다. 실수를정수로변환하여연산할수도있다. 강 C 프로그래밍 12

3.2 변수

변수 프로그램에서데이터를저장 / 사용하기위한공간 ( 주메모리 ) 변수는이름을붙여서사용한다. 변수에는언제든새로운값을저장할수있다. 변수에값이저장되면언제든그값을가져올수있다. 변수는반드시자료형을가져야한다. 변수는사용하기전에반드시선언되어야한다. 자료형, 변수이름 강 C 프로그래밍 14

변수의선언 자료형변수명 ; 자료형변수명 1, 변수명 2, ; 어떤자료형을가진어떤이름의변수를필요한만큼선언 선언의예 int number; 주메모리 number value score int value, score, total; 선언의위치 변수를사용하기전 현재는 int main ( ) { 의다음줄에넣는다. 강 C 프로그래밍 15

변수에값넣기 변수명 = 값 ; 변수에값을넣을때 = 를이용한다. 오른쪽에있는값을왼쪽의변수에넣는다. score = 90; 주메모리 90 number value score 강 C 프로그래밍 16

변수의이름 변수의이름에대한규칙 문자 ( 알파벳 ), 숫자, _ (underscore, underbar) 변수이름의첫글자는무조건문자또는 _ 변수이름에대소문자를구별한다. 한글변수명도사용가능 C99에서지원 ( 어느나라언어든가능 ) 기존개발자들사이에서익숙하지않아가급적쓰지않기를권장 변수이름의예 적절한예 (number, _number7, My_address) 적절하지않은예 (7even, num@#, score-score) 강 C 프로그래밍 17

변수의이름 좋은변수이름 이름만으로도무엇을저장하는변수인지짐작할수있어야한다. 변수의자료형을알수있으면더좋다. 개발도구가변수의자료형을알려준다. 두개이상의단어를사용해도좋다. totalnum, myaddress 등 좋지않은변수이름 a, b, c, a1, a2, aaaa, bbbb, kkk 강 C 프로그래밍 18

변수의이름 둘이상의단어가결합된변수의작명 단어의시작문자를대문자로 : AverageScore, TotalScore 단어사이에 _ 를붙인다 : average_score, total_score 변수의자료명 itotalscore : 정수형변수임을변수명에서바로알수있다. faveragescore : 실수형변수 사용할수없는변수명 (keyword, 또는 reserved word) C 언어에서별도의목적으로사용하도록예약된단어들 auto, break, case, char, const, continue, default, do, double else, enum, extern, float, for, goto, if, return, short, sighed, 강C프로그래밍 19 sizeof, static, struct, switch, typedef, union, unsigned, void,

변수초기화 int value; value = 10; int value = 10; 변수선언과동시에값을넣어준다. 여러변수의선언과초기화예 int number = 20, value = 30, score = 50; 변수를선언하고초기화하지않으면쓰레기값이들어있다. 모든변수를초기화해야하는것은아니다. 강 C 프로그래밍 20

변수의초기화 다음은정상적인경우이다. int value, name ; // value 변수는초기화하지않아도된 다. // 쓰레기값이들어있지만, name = 50; value = name; // value 변수의쓰레기값을쓰기전에 // 다른값으로채우기때문이다. 다음은경고또는에러가나온다. int value, name; value = name; name 변수가초기화되지않아쓰레기값이있는데그쓰레기를 value에넣으려하고있다. 강 C 프로그래밍 21

sizeof 연산자 자료형의크기를알려주는연산자 int score; score = 99; printf( %d\n, sizeof (int)); // int 형의크기를출력 printf( %d\n, sizeof score); // score 변수의크기를출력 시스템마다자료형의크기가다를수있다. 이때 sizeof 연산자로확인하는것이좋다. 강 C 프로그래밍 22

3.3 C 프로그램에서의숫자

상수 값을나타내는자료예 문자형상수 A 정수형상수 10, 384 실수형상수 5.321 score = 10; 상수 강 C 프로그래밍 24

이름상수 (named constant) 변수처럼식별자에값을부여한다. 값을바꿀수없고, 프로그램실행내내지정한값만을가질수 있다. 사용법 const int MAX_SCORE = 100 ; score = MAX_SCORE; 이름상수를쓰는이유 프로그램의가독성향상 실수로값을변경하는것을방지 바람직한상수명 대문자로사용한다. : 변수와달리상수라는것을표시 강 C 프로그래밍 25

진수표기법 C 프로그램에서사용가능한진수 8, 10, 16진수 2진수상수는프로그램에서직접사용하지않는다. 2, 8, 16 진수의관계 2진수 3자리를묶으면 8진수 2진수 4자리를묶으면 16진수 110010100110 2 진수 0100110010100110 2 진수 6 2 4 6 8 진수 4 C A 6 16 진수 강 C 프로그래밍 26

진수표기법 C 프로그램에서진수의표현 8진수 : 숫자앞에 0을붙인다. 16진수 : 숫자앞에 0x를붙인다. 사용예 : value = 010; // 8진수 10, 즉, 8을 value에넣는다. Score = 0x10; // 16진수 10, 즉 16을 score에넣는다. 프로그램에서 2 진수를이용하여입력하는방법은없다. 8 진수또는 16 진수로변환하여입력해야한다. 강 C 프로그래밍 27

지수형자료의입력 수입력의한계 10^100 을입력하기위해다음과같이할수없다. ( 에러 ) double fvalue = 10000000000000000000000000000000000000000 지수형태의입력이가능하다. fvalue = 1.0e100; 강 C 프로그래밍 28

오버플로 / 언더플로 C 언어에서의자료형크기 (byte) 표현범위 char 1-128~127 short 2-32768 - 32767 정수형 int 4-2,147,483,648 ~ 2,147,483,647 long 4-2,147,483,648 ~ 2,147,483,647 long long 8 약 -922경 ~ 922경 ( 이하자리생략 ) 표현범위를벗어날경우 char 형에서 -128보다작거나 ( 언더플로 ) 127보다클때 ( 오버플로 ) 오버플로 / 언더플로 따로에러로간주하지않으나, 예상치못한값이들어있다. 발생하지않도록하는것이바람직하다. 강 C 프로그래밍 29

수와접미사 float a, b; a = 0.1; // 경고가나온다 b = 0.5; // 정상이다. 실수형상수도 float 형과 double 형으로구분된다. double 상수를 float형변수에넣으려하면자료손실가능성으로경고가나온다상수를특정한자료형으로정의할때접미사를사용한다. a = 0.1F; // 0.1 을 float 형으로간주하라. 접미사의종류 U, L, UL, LL, ULL( 이상정수형접미사 ), F, L ( 이상실수형접미사 ) 강C프로그래밍 30

3.4 컴퓨터에서수를표현하는방 법

정수의표현 2 의보수로표현하는음의정수양의정수 -2,147,483,648 1000..0000 2,147,483,647 0111.. 1111-2,147,483,647 1000..0001 2,147,483,646 0111..1110-3 1111..1101 3 0000..0011-2 1111..1110 2 0000..0010-1 1111..1111 1 0000..0001 0 0000..0000 0 0000..0000 오버플로 / 언더플로의결과를이표에서찾아보자. 강 C 프로그래밍 32

실수의표현 ± 1. fffffffffffffffffffffff 2 eeeeeeee 127 가수 지수 0 e e e e e e e e f f f f f f f f f f f f f f f f f f f f f f f 1 bit 8 bit 23 bit long double 형은시스템마다구성이다르다. 강 C 프로그래밍 33