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

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

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

PowerPoint Presentation

OCW_C언어 기초

Microsoft PowerPoint - Chapter_04.pptx

OCW_C언어 기초

Microsoft PowerPoint - chap04-연산자.pptx

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

Microsoft PowerPoint - chap06-2pointer.ppt

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

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

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx

untitled

Microsoft PowerPoint - ch07 - 포인터 pm0415

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

슬라이드 1

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

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

ABC 2장

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

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

중간고사

Microsoft PowerPoint - [2009] 02.pptx

ABC 3장

쉽게 풀어쓴 C 프로그래밍

본 강의에 들어가기 전

03 상수, 변수, 자료형

ABC 3장

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

Microsoft PowerPoint - chap03.ppt

<4D F736F F F696E74202D20C1A634C0E520BAAFBCF6BFCDC0DAB7E1C7FC>

OCW_C언어 기초

untitled

PowerPoint Presentation

Microsoft PowerPoint - chap06-1Array.ppt

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Microsoft PowerPoint - c2.ppt

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

11장 포인터

PowerPoint 프레젠테이션

C 프로그래밊 개요

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

Microsoft PowerPoint - Chapter_02.pptx

PowerPoint Presentation

슬라이드 1

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 \

Microsoft PowerPoint - 제11장 포인터

쉽게 풀어쓴 C 프로그래밍

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

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

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

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

Microsoft PowerPoint - chap-11.pptx

PowerPoint Template

슬라이드 1

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

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

untitled

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

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

1.1.1 컴퓨터의 구성 p.19

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-05.pptx

; 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

Microsoft PowerPoint - C_9장 포인터 pptx

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

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

프로그래밍 및 연습 1

쉽게 풀어쓴 C 프로그래밍

기초컴퓨터프로그래밍

Microsoft PowerPoint - chap-06.pptx

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

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint Presentation

Microsoft PowerPoint - 7장 배열 pptx

슬라이드 1

PowerPoint 프레젠테이션

K&R2 Reference Manual 번역본

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - Chapter_08.pptx

강의 개요

쉽게 풀어쓴 C 프로그래밍

C 프로그램의 기본

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

Microsoft PowerPoint - Lesson2.pptx

PowerPoint 프레젠테이션

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

Transcription:

C 프로그래밍및실습 2. 변수와자료형 세종대학교 목차 1) 변수와자료형개요 4) 부동소수자료형 6) 자료형변환 2

1) 변수와자료형개요 변수 : 값을담을그릇 자료형 : 그릇의모양 이그릇안에 10+20 의결과저장 자료형 int main() { int c ; c=10+20; 변수 int 30 c printf("c=10+20 출력 :"); printf("%d", c); 모양이 int 형이고, 이름이 C 인그릇 } return 0; 3 1) 변수와자료형개요 변수 값을저장하기위한기억장소 사용하기전에반드시선언 int c; 자료형 자료값의형태 컴퓨터내부에서값이저장되고처리되는방식을결정짓는매우중요한요소 상수 변하지않는수로변수와대비되는개념 10, 20, 30 과같은특정값 4

변수선언 int c ; 자료형을앞에명시한후사용할변수이름을적음 변수선언도하나의문장이므로세미콜론을붙여야함 예 ) int num; int 형변수 num 선언 char ch; char 형변수 ch 선언 float x; float 형변수 x 선언 double y; double 형변수 y 선언 int, char, float, double : 자료형이름, 미리정해진단어 num, ch, x, y : 변수이름, 프로그래머가지은단어 5 다양한변수선언의형태 int a; double b; int c; double d; int a,b; double b,d; int a, float b; float d, int c; (X) 1 가능 2 가능 3 불가능 6

변수값저장 선언된변수에값을저장하기위해서는대입연산자 '=' 사용 왼쪽변수에오른쪽의값을대입 ( 저장 ) 하라는의미 c = 10 + 20 ; c 10 + 20 수학에서사용되는등호 (=) 와는다른의미 변수에새로운값을대입하면이전값은사라짐 age = 20; age = 21; // 이전에저장한 20 은사라짐 7 변수값참조 변수이름사용 printf("%d", c); 여기서 c는변수에저장된값을의미 변수의위치에따라의미다름 대입연산자왼쪽 : 저장공간자체 대입연산자오른쪽 : 저장된값 a = b; 변수 a에변수 b의값대입 b = a; 변수 b에변수 a의값대입 a = a + 10; 이런문장도가능 8

[ 예제 2.1] 변수선언과사용 int main() { int id; int credits; 학번 : 20160120 신청학점 : 18 id = 20160120; // 변수 id 에값대입 ( 저장 ) credits = 18; } printf(" 학번 : %d\n", id); // 변수 id 값출력 ( 참조 ) printf(" 신청학점 : %d\n", credits); return 0; 9 변수초기화 변수를선언만하고값을대입하지않으면쓰레기값 (garbage value) 이저장되어있음 선언과동시에변수값지정 ( 변수초기화 ) int num = 123; 여러변수동시초기화가능, 일부변수만초기화가능 int a, b, c; a = 123; b = 456; int a = 123, b = 456, c; 10

[ 예제 2.2] 변수초기화 int main() { int math = 99; int korean = 90; [ 빈칸 ] // int 형변수 math 선언후 99 로초기화 // 더하기기호인 + 를사용하여총합을변수 total 에저장 int total = math + korean + science; printf(" 수학 : %d\n", math); // 변수값출력 printf(" 국어 : %d\n", korean); printf(" 과학 : %d\n", science); [ 빈칸 ] 수학 : 99 국어 : 90 과학 : 94 총점 : 283 } return 0; 11 키워드 C 언어에서특별한의미를가지도록미리정해놓은단어 예 ) char, int, double 등기본자료형, 이외에도많음 식별자 변수처럼프로그래머가지어서사용하는이름 식별자로사용할수없는이름의예 num-01 num.a 밑줄이아닌특수문자는사용할수없음 3card 999 첫문자에숫자사용할수없음 int char 키워드는사용할수없음 12

목차 1) 변수와자료형개요 4) 부동소수자료형 6) 자료형변환 13 정수자료형종류 int : 정수를나타내는가장기본적인자료형 short, long, long long : 정수를나타내지만자료형의크기가다름 short int long long long 같은자료형이라도시스템마다크기가다를수있음 자료형의크기는 sizeof 연산자를이용하여확인 printf("long : %d\n", sizeof(long) ); 자료형의크기는표현할수있는수의범위결정 예 ) int 의크기는보통 4 바이트 (32 비트 ) 로총 2 32 개의수표현가능반은음수, 나머지반은 0 과양수를표현하여 -2 31 ~ 2 31 1 사이의정수를나타냄 14

signed 와 unsigned signed : 음수와양수모두표현 unsigned : 0과양수만표현 ( 음수표현불가 ) int, short 등의앞에부호여부명시해주면됨 예 ) unsigned int, signed short 명시하지않으면기본적으로 signed 즉, int = signed int 15 정수자료형의크기및표현할수있는값의범위 VS 2017 기준 부호 자료형 메모리크기 값의범위 short 2 bytes 2 15 ~ 2 15 1 있음 int 4 bytes 2 31 ~ 2 31 1 long 4 bytes 2 31 ~ 2 31 1 long long 8 bytes 2 63 ~ 2 63 1 unsigned short 2 bytes 0 ~ 65,535 없음 unsigned int 4 bytes 0 ~ 4,294,967,295 unsigned long 4 bytes 0 ~ 4,294,967,295 unsigned long long 8 bytes 0 ~ 18,446,744,073,709,551,615 16

다양한정수자료형사용하기 저장값 : 32000 2140000000 int main() 저장값 : 65000 4280000000 { short svar = 32000; // 32768 ~ 32767 int ivar = 2140000000; // 약 21억 ~ 21억정도 unsigned short usvar = 65000; // 0 ~ 65535 unsigned int uivar = 4280000000; // 0 ~ 42 억정도 printf(" 저장값 : %d %d\n", svar, ivar); printf(" 저장값 : %u %u\n", usvar, uivar); unsigned 값을출력할경우 %u 사용 } return 0; 17 [ 예제 2.3] 이전프로그램에서다음과같이각자료형이나타낼수있는최댓값또는최솟값으로초기화하여출력해보자. short svar = 32768; int ivar = 2147483647; 최솟값 최댓값 unsigned short usvar = 65535; unsigned int uivar = 4294967295; 최댓값 최댓값 결과는? 18

[ 예제 2.4] 이전프로그림에서다음과같이각자료형이나타낼수있는수의범위를벗어난값으로초기화하여출력해보자. short svar = 72000; int ivar = 2150000000; unsigned short usvar = 1000; unsigned int uivar = 4294967300; 결과는? 19 [ 예제 2.5] 이전프로그램에서다음과같이각자료형이나타낼수있는최댓값보다 1 큰수또는최솟값보다 1 작은수로초기화하여출력해보자. short svar = 32768 1; 최솟값 1 int ivar = 2147483647+1; 최댓값 + 1 unsigned short usvar = 0 1; 최솟값 1 unsigned int uivar = 4294967295+1; 최댓값 + 1 결과는? 20

목차 1) 변수와자료형개요 4) 부동소수자료형 6) 자료형변환 21 4) 부동소수자료형 부동소수 (floating point) 형종류 3.14, 3.26567과같이실수를표현하는자료형 자료형키워드 : float, double, long double 부동소수형출력 : printf의서식지정자 '%f' 사용 float x = 3.14; double y = 3.141592; printf("x: %f\n", x); 부동소수형출력시 %f 사용 printf("y: %f\n", y); 부동소수형출력시 %f 사용 22

4) 부동소수자료형 부동소수형표현방식 0.000023의다른표현 2.3 x 10-5 컴퓨터에서는후자의방식으로표현 컴퓨터에서정수 3 과부동소수 3.0 은전혀다름 double x = 3.0; printf("x: %f\n", x); 부동소수형으로출력 ( 정상 ) printf("x: %d\n", x); 정수형으로출력 ( 잘못된결과 ) x : 3.000000 x : 0 23 4) 부동소수자료형 부동소수형의크기 float double long double 실제크기는시스템종류에따라다를수있음 VS2017 기준 자료형 메모리크기 값의범위 float 4 bytes 유효자릿수약 7개, 최대지수약 10 38 double 8 bytes 유효자릿수약 16개, 최대지수약 10 308 long double 8 bytes 유효자릿수약 16개, 최대지수약 10 308 24

4) 부동소수자료형 부동소수형의크기 유효자릿수확인 float x = 12345678901234567890.0; double y = 12345678901234567890.0; 20 자리수 20 자리수 printf("x : %f\n", x); printf("y : %f\n", y); float 형변수출력 double 형변수출력 x=12345679395506094080.000000 y=12345678901234567168.000000 25 목차 1) 변수와자료형개요 4) 부동소수자료형 6) 자료형변환 26

문자형 char, signed char, unsigned char 문자형자료형의크기는모두 1바이트 문자는작은따옴표 ' ' 를사용하여표현 출력 : printf의서식지정자 '%c' char ch = 'z'; 문자 'z' 로초기화 printf("ch: %c\n", ch); 문자형출력시 %c 사용 ch: z 27 문자형의실체 특정문자에해당하는정수값을지정 : 아스키 (ASCII) 코드 예 : 영어대문자 'A' 의아스키코드값은 65 문자형은본질적으로정수형과동일 char c1 = 'A'; char c2 = 65; 문자 'A' 로초기화 정수 65 로초기화 printf("c1: %c %d\n", c1, c1); printf("c2: %c %d\n", c2, c2); c1 의값 c2 의값 c1: A 65 c2: A 65 28

아스키코드표 : 외울필요없음 29 문자형은본질적으로정수 (1 바이트 ) 정수연산가능 char ch = 'A'+1; 66 즉, 문자 'B' 저장 부호없는자료형가능 : unsigned char 자료형메모리크기값의범위 char 1 bytes (8 bits) -128 ~ 127 unsigned char 1 bytes (8 bits) 0 ~ 255 30

문자 '0' 과숫자0은다르다 문자 '0' 의아스키코드값은 48 즉, 문자 '0' == 정수 48 char c1 = '0' ; char c2 = 0 ; 문자 '0' 으로초기화 정수 0 으로초기화 printf(" 문자 : %c %c\n", c1, c2); printf(" 정수 : %d %d\n", c1, c2); 문자 : 0 정수 :[ 빈칸 ] 31 특수문자 ( 이스케이프시퀀스 ) \ 과다음문자를묶어서하나의문자로간주 문자 역할 비고 \n 새로운줄로이동 [Enter] 키효과와동일 \t 다음탭으로이동 [Tab] 키효과와동일 \b 앞으로한칸이동 [Back Space] 키효과와동일 \r 줄의맨앞으로이동 [Home] 키효과와동일 \a 삑 소리를냄 \\ 역슬래쉬 \ \' 작은따옴표 ' \" 큰따옴표 " 32

목차 1) 변수와자료형개요 4) 부동소수자료형 6) 자료형변환 33 6) 자료형변환 서로다른자료형의값을대입하면? 정수는소수부분을표현할수없어 123.45가 123으로출력된점이외에는큰문제없이동작 int a = 123.45 ; double b = 123 ; 실수 123.45 대입 정수 123 대입 printf("a: %d\n", a); a의값출력 printf("b: %f\n", b); b의값출력 a: 123 b: 123.000000 34

6) 자료형변환 자동형변환 정수 부동소수 int a = 123.45; a 123 ( 정수 ) 123.45 ( 부동소수 ) 형변환 double b = 123; b 123.0 ( 부동소수 ) 123 ( 정수 ) 형변환 위변환과정은자동으로수행 : 자동형변환 ( 묵시적형변환 ) 35 6) 자료형변환 정보유실주의 double fnum1 = 13.5; double fnum2 = 12.5; int inum1 = fnum1; int inum2 = fnum2; inum1 에는 13 대입 inum2 에는 12 대입 printf("fnum1+fnum2 = %f \n", fnum1+fnum2); printf("inum1+inum2 = %d \n", inum1+inum2); fum1+fum2 = 26.000000 inum1+inum2 = 25 왜위와같은결과가나오는지생각해보자. 36

6) 자료형변환 명시적형변환 printf의서식지정자에따라형변환이자동으로발생하지않음 printf("12.3: %d\n", 12.3); printf("123: %f\n", 123); 12.3: 1717986918 123: 0.000000 명시적형변환필요 printf("12.3: %d\n", (int) 12.3); printf("123: %f\n", (double) 123); 12.3: 12 123: 123.000000 37