OCW_C언어 기초

Similar documents
PowerPoint Presentation

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

K&R2 Reference Manual 번역본

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

OCW_C언어 기초

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

Microsoft PowerPoint - Chapter_04.pptx

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

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

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

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

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap04-연산자.pptx

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - chap-04.pptx

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

Microsoft PowerPoint - chap-04.pptx

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - ch07 - 포인터 pm0415

untitled

untitled

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

ABC 3장

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

PowerPoint 프레젠테이션

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

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint Presentation

슬라이드 1

Microsoft PowerPoint - chap05-제어문.pptx

<4D F736F F F696E74202D20C1A634C0E520BAAFBCF6BFCDC0DAB7E1C7FC>

OCW_C언어 기초

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

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

슬라이드 1

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

Microsoft PowerPoint - chap12-고급기능.pptx

PowerPoint Presentation

untitled

JAVA PROGRAMMING 실습 02. 표준 입출력

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

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

11장 포인터

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

Microsoft PowerPoint - lec2.ppt

PowerPoint 프레젠테이션

컴파일러


기초컴퓨터프로그래밍

C 프로그래밊 개요

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

ABC 2장

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

슬라이드 1

PowerPoint 프레젠테이션

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

ABC 3장

chap10.PDF

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

<4D F736F F F696E74202D2032C1D6C2F72D32C2F7BDC32028B0ADC0C7C0DAB7E D20BAAFBCF6BFCD20BFACBBEAC0DA>

PowerPoint Presentation

Microsoft PowerPoint - chap06-1Array.ppt

11장 포인터

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

Microsoft PowerPoint - chap03.ppt

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

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

PowerPoint 프레젠테이션


PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

10장. 구조체

Microsoft PowerPoint - 제11장 포인터

KNK_C_05_Pointers_Arrays_structures_summary_v02

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

PowerPoint Template

Microsoft PowerPoint - chap-11.pptx

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

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - c2.ppt

03 상수, 변수, 자료형

C 프로그램의 기본

본 강의에 들어가기 전


Microsoft PowerPoint - chap-06.pptx

C언어 및 실습 C Language and Practice

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

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

Chapter_06

쉽게 풀어쓴 C 프로그래밍

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

Transcription:

초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주

학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2

목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3

변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터 데이터를보관해둘필요가있을때, 변수사용 4

변수와상수 메모리 : 연속된데이터바이트의모임 데이터를보관하기위해서메모리사용 메모리의각바이트는주소가있음 프로그램에서사용되는모든데이터는바이트단위의크기를가지며, 데이터값의형식에따라크기가다름 5

변수 (Variable) 저장될값의데이터형에따라필요한만큼메모리를할당받고이름을붙임 " 변수선언 " 변수를선언하고나면변수의이름을이용해서메모리에접근할수있음 6

변수 (Variable) 기본데이터형 문자형 : char 정수형 : short, int, long 실수형 : float, double 7

변수 (Variable) 식별자 : 변수명이나함수명과 같은이름 8

변수 (Variable) 식별자를만들기위한규칙 식별자는반드시영문자, 숫자, 밑줄기호 (_) 만을사용 식별자의첫글자는반드시영문자또는밑줄기호 (_) 로시작 식별자는숫자로시작해서는안됨 식별자에는밑줄기호 (_) 를제외한다른기호를사용할수없음. 식별자는대소문자를구분해서만들어야함 name, Name, NAME 은모두다른이름의식별자로간주 C 언어의키워드는식별자로사용할수없음 변수의선언문은다른모든문장보다앞에위치해야함 9

변수 (Variable) 키워드 (keyword) : 예약어 (reserved word) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedof union unsigned void volatile while 10

변수 (Variable) 올바른변수선언 잘못된변수선언 11

변수 (Variable) 12

변수 (Variable) 변수는따로초기화를하지않으면쓰레기값을갖게됨 13

변수 (Variable) 변수의초기화 (initialization) 변수가처음메모리에할당될때값을지정 14

변수 (Variable) 변수의초기화및변수의사용방법 1: /* Ex03_01.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: int num1; 7: int num2 = 10; 8: 9: printf(" num1 = %d, num2 = %d\n ", num1, num2); 10: num1 = 100; 11: num2 = 200; 12: printf(" num1 = %d, num2 = %d\n ", num1, num2); 13: 14: return 0; 15: } 초기화되지않은정수형변수초기화된정수형변수 변수에값대입 15

상수 (Constant) 리터널상수 : 값자체를직접사용 16

상수 (Constant) 여러가지리터널상수 1: /* Ex03_02.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: char ch = '\x41'; 7: int num = 0x7b; 8: unsigned int u_num = 123U; 9: long l_num = 1234567L; 10: double f_num1 = 12.34; 11: double f_num2 = 123.4567e-1; 12: float f_num3 = 12.34F; 13: 14: printf("ch = %c\n", ch); 15: printf("num = %d, %o, %x\n", num, num, num); 16: printf("u_num = %u\n", u_num); 17: printf("l_num = %d\n", l_num); 18: printf("f_num1 = %f, %e, %g\n", f_num1, f_num1, f_num1); 19: printf("f_num2 = %e\n", f_num2); 20: printf("f_num3 = %f\n", f_num3); 21: 22: return 0; 23: } 리터널상수로초기화된변수 17

상수 (Constant) 출력에사용되는여러가지문자열 18

상수 (Constant) #define 문으로정의되는 상수 매크로상수의사용예 19

상수 (Constant) #define 문은전처리기에의해서됨 20

상수 (Constant) 매크로상수의정의및사용 1: /* Ex03_03.c */ 2: #include <stdio.h> 3: 4: #define MAX 100 5: 6: int main(void) 7: { 8: int num1 = MAX; 9: int num2 = MAX - 1; 10: int num3 = -MAX; 11: 12: printf("num1 = %d\n", num1); 13: printf("num2 = %d\n", num2); 14: printf( num3 = %d\n, num3); 15: 16: printf("max = %d\n", MAX); 17: 18: return 0; 19: } 매크로상수정의 MAX 를 100 으로바꿔서처리 안의 MAX 는 100 으로바뀌지않음 21

상수 (Constant) #defne 문은 C 의문장이아니기때문에 #defne 문의끝에는세미콜론 (;) 이필요없음. 22

상수 (Constant) 값을변경할수없는변수 const 변수의사용예 23

상수 (Constant) const 변수의선언및사용 1: /* Ex03_04.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: const double pi = 3.14; 7: const int max; 8: 9: printf("pi = %f\n", pi); 10: printf("max = %d\n", max); 11: 12: pi = 3.1415; 13: max = 100; 14: 15: return 0; 16: } Const 변수선언초기화되지않았음으로쓰레기값을가짐 Const 변수는변경할수없음 24

상수 (Constant) 기호상수 : 이름이있는상수 이름이있는상수를사용하면프로그램을수정하기용이. 이름이있는상수를사용하면프로그램을알아보기용이 25

데이터형 (Data Type) C 프로그램에서사용되는모든변수나값은정해진데이터형이있음 데이터형에의해서주어진값의이진표현이결정됨 26

데이터형 (Data Type) 기본데이터형 (primitive data type) 문자형 : char 정수형 : short, int, long 실수형 : float, double 파생데이터형 (derived data type) 배열, 포인터 사용자정의형 (user-defined data type) 구조체, 공용체, 열거체 27

데이터형 (Data Type) 문자의 ASCII 코드확인 1: /* Ex03_05.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: char ch; 7: Char 형변수선언 8: scanf("%c", &ch); 9: printf("%c 문자의 ASCII 코드 : %d (%x)\n", ch, ch, ch); 10: 11: return 0; 12: } ASCII 코드출력 28

데이터형 (Data Type) ASCII 코드중특별한용도로사용되는특수문자 (Escape sequence) 는 \ 와함께표현 29

데이터형 (Data Type) 특수문자 30

데이터형 (Data Type) ASCII 코드, MBCS, 유니코드 31

데이터형 (Data Type) short 형의크기 int 형의크기 long 형의크기 정수형은 signed 형과 unsigned 형으로나누어지는데, signed 키워드는생략가능 32

데이터형 (Data Type) 정수형중부호있는정수형은최상위비트를부호비트 (sign bit) 로사용 부호없는정수형은최상위비트를값을저장하는용도로사용 33

데이터형 (Data Type) Singed 와 unsigned 비교 1: /* Ex03_06.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: short num1 = -10; 7: unsigned short num2 = num1; 8: 9: printf(" 부호있는정수 : %d\n", num1); 10: printf(" 부호없는정수 : %d\n", num2); 11: 12: return 0; 13: } Short 형변수에음수 -10 저장음수이므로최상위비트가 1 로설정 Unsigned short 형변수에 -10 저장최상위비트가 1 이지만음수가아닌 65526 임 34

데이터형 (Data Type) 유효범위 35

데이터형 (Data Type) Short 형과 unsigned short 형의오버플로우확인 1 1: /* Ex03_07.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: short num1 = 32767; 7: short num2 = -32768; 8: unsigned short num3 = 65535; 9: unsigned short num4 = 0; 10: 11: num1 = num1 + 1; 12: num2 = num2-1; 13: num3 = num3 + 1; 14: num4 = num4-1; 15: 16: printf("num1 = %d\n", num1); 17: printf("num2 = %d\n", num2); 18: printf("num3 = %d\n", num3); 19: printf("num4 = %d\n", num4); 20: 21: return 0; 22: } Short 형의최대값으로초기화 Short 형의최소값으로초기화 Unsigned short 형의최대값으로초기화 Unsigned short 형의최소값으로초기화 오버플로우발생 36

데이터형 (Data Type) 데이터형의유효범위를넘어서는것 오버플로우발생시항상유효범위내의값으로설정됨 37

데이터형 (Data Type) Short 형의언더플로우 38

데이터형 (Data Type) short 형과 unsigned short 형의유효범위 39

데이터형 (Data Type) short 형유효범위의이진표현 40

데이터형 (Data Type) limits.h 의내용정리 41

데이터형 (Data Type) Short 형과 unsigned short 형의오버플로우확인 2 1: /* Ex03_08.c */ 2: #include <stdio.h> 3: #include <limits.h> 4: 5: int main(void) 6: { 7: short num1 = SHRT_MAX; 8: short num2 = SHRT_MIN; 9: unsigned short num3 = USHRT_MAX; 10: unsigned short num4 = 0; 11: 12: num1 = num1 + 1; 13: num2 = num2-1; 14: num3 = num3 + 1; 15: num4 = num4-1; 16: 17: printf("num1 = %d\n", num1); 18: printf("num2 = %d\n", num2); 19: printf("num3 = %d\n", num3); 10: printf("num4 = %d\n", num4); 21: 22: return 0; 23: } SHRT_MAX 등의매트로상수가정의된헤더포함 SHRT_MAX 는 short 형의최대값 SHRT_MAX 는 short 형의최소값 USHRT_MAX 는 unsigned short 형의최대값 42

데이터형 (Data Type) 실수의표현 부동소수점방식을주로사용 실수의정밀도 : 단정도 (float 형 ) 와배정도 (double 형 ) 43

데이터형 (Data Type) Float 형과 double 형의정밀도비교 1: /* Ex03_09.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: float pi1 = 3.141592653589793; 7: double pi2 = 3.141592653589793; 8: 9: printf("float 형의 pi 값 : %f\n", pi1); 10: printf("double 형의 pi 값 : %f\n", pi2); 11: 12: printf("float 형의 pi 값 : %30.25f\n", pi1); 13: printf("double 형의 pi 값 : %30.25f\n", pi2); 14: 15: return 0; 16: } %f 는소수점이하 6 자리까지출력 %30.25f 는소수점이하 25 자리출력 44

데이터형 (Data Type) Float 형의오버플로우와언더플로우 1: /* Ex03_10.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: float num1 = 3.5e39; 7: float num2 = 1.8e-39; 8: 9: printf("num1 = %30.25f\n", num1); 10: printf("num2 = %30.25f\n", num2); 11: 12: return 0; 13: } Float 형으로표현할수없는값 45

데이터형 (Data Type) 주어진값이나데이터형의바이트크기를구함 46

데이터형 (Data Type) Sizeof 연산자의사용 1: /* Ex03_11.c */ 2: #include <stdio.h> 3: 4: int main(void) 5: { 6: char ch; 7: int num; 8: double fnum; 9: 10: printf("ch 의바이트크기 : %d\n", sizeof ch); 11: printf("num 의바이트크기 : %d\n", sizeof num); 12: printf("fnum의바이트크기 : %d\n", sizeof fnum); 13: 14: printf("3.14f의바이트크기 : %d\n", sizeof 3.14f); 15: 16: printf("char 형의바이트크기 : %d\n", sizeof(char)); 17: printf("short 형의바이트크기 : %d\n", sizeof(short)); 18: printf("int 형의바이트크기 : %d\n", sizeof(int)); 19: printf("long 형의바이트크기 : %d\n", sizeof(long)); 20: printf("float 형의바이트크기 : %d\n", sizeof(float)); 21: printf("double 형의바이트크기 : %d\n", sizeof(double)); 22: 23: return 0; 24: } 값이나데이터형의크기를구하려면 Sizeof 사용 47

학습정리 변수와상수 변수 : 값이변경될수있는데이터를말하며, 값을보관하기위해서메모리를사용 상수 : 프로그램에서값이변경되지않는요소를말하며, 리터럴상수와매크로상수, const 변수가있음 데이터형 48