4장 자료형.

Slides:



Advertisements
Similar presentations
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
Advertisements

YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
데이터의 표현과 연산 (1) (Chapter 3)
제 11 장 구조체.
Sun Mon Tue Wed Thu Fri Sat
1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August
2013 January 2012년 도원초 4학년1반 기념 달력 1신정
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■.
제2장 배열과구조.
Part 12 구조체와 공용체 ©우균, 창병모 ©우균, 창병모.
구조체 활용 구조체 활용.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
8. 객체와 클래스 (기본).
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
구조체 struct 구조체와 함수 구조체의 배열, sizeof 연산자 열거형 enum 형 정의 typedef
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
6장. printf와 scanf 함수에 대한 고찰
제 3 장. 배열과 구조체 및 포인터.
8장 포인터.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
위모트 컨트롤을 이용한 “볼링” 학번: 이름: 김바울.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
제 2 장 변수와 상수.
제 3 장 상수와 변수
1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August
Work Progress ’ 나소라, 윤민.
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
Derived Types-- Enumerated, Structure and Union
adopted from KNK C Programming : A Modern Approach
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
★ 2015 석우초 4분기 방과후학교 영어교실 등록안내 ★
1차 발표: 프로젝트 소개 학번: 이름: 이철환.
제2장 데이터형과 표준 입출력문 문봉근.
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
November 일 월 화 수 목 금 토
좀비 . 그들과의 전쟁이 시작되었다. 마우스를 이용해서 집을 지킬 식물을 설치
자전거를 배우려면 안장에 올라가 페달을 밟아라.
제 3 장 연산자 (Operators).
신제품 개발의 정의 고객의 Needs & Wants 마케팅 활동의 출발은 신제품 개발로부터 시작합니다.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
제 8장 구조체 Hello!! C 언어 강성호 김학배 최우영.
Chapter 05. 입출력 함수.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 22. 구조체와 사용자 정의 자료형1.
1차 발표: 프로젝트 발표 학번: 이름: 권창민 1.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
제 8 장 포인터.
3주차: Control Flow and Others
1차 발표: 프로젝트 발표 학번: 이름: 박진완.
개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C.
printf("Global Korea\n");
POWER POINT TEMPLATE 2019 CALENDAR.
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
Presentation transcript:

4장 자료형

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4장 자료형(Data Type) 4.1 자료형(Data Type) 4.2 숫자(Number) 4.3 문자(Character) 4.4 구조체(Structure) 4.5 공용체(Union) 4.6 비트 필드(Bit Field) 4.7 열거형(Enumerous) 4.8 사용자 정의(User-Defined)

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.1 자료형 자료형에 따라 다음 사항들이 결정된다

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.1 자료형 자료형의 종류

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.1 자료형 자료형에 따른 값의 표현범위

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.1.1 자료형 선언 선언형식

4.1.2 형변환 ( ) ?: 자료의 형을 변경하는 것 (1)자동 형변환 : 예) 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.1.2 형변환 ( ) ?: 자료의 형을 변경하는 것 (1)자동 형변환 : 수식에 서로 다른 자료형이 섞여 있는 경우, 컴파일러에 의해 자료형이 자동으로 변경되는 경우 낮은 우선순위의 피연산자는 높은우선순위의 피연산자형으로 변경 자료형의 우선순위 예) i를 float형으로 형변환한다 계산된 결과는 float형이다

4.1.2 형변환 (2) ( ) 연산자를 이용한 형변환 프로그래머에 의해 강제적으로 형을 변환 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.1.2 형변환 (2) ( ) 연산자를 이용한 형변환 프로그래머에 의해 강제적으로 형을 변환 ( )안에 변경할 자료형을 기입 -->(자료형) 예) cast연산자의 형변환 #include <stdio.h> int main(){ int i,j; float a,b; i=1; j=3; a= (float)i/(float)j; b= i/j; printf("\na=%f, b=%f\n\n", a,b); return 0; }

4.2 숫자 정수(Integer) 실수(Real Number) 저장길이에 따라 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.2 숫자 정수(Integer) 저장길이에 따라 실수(Real Number)

( ) 연산자 자료형의 길이를 byte단위로 구해준다 형식:sizeof(자료형) 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 ( ) 연산자 자료형의 길이를 byte단위로 구해준다 형식:sizeof(자료형)

4.3 문자 1byte 문자로서의 char 1byte 정수로서의 char 1개 문자(1byte)를 나타내는 자료형 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.3 문자 1byte 문자로서의 char 1개 문자(1byte)를 나타내는 자료형 1byte 정수로서의 char char(signed char)로 선언: -128~127까지 표현 unsigned char로 선언: 0~256까지 표현 예) int main( ) { char cha = 'A'; printf("\n 문자 %c = 16진수 %x = 10진수 %d", cha, cha, cha); printf("\n 정수로 취급 cha+1= %d", cha + 1); return 0; }

4.4 구조체 ( ) ?: 하나이상의 기본 자료형 변수들을 묶어서 그룹화하는 자료형 구조체 선언 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.4 구조체 ( ) ?: 하나이상의 기본 자료형 변수들을 묶어서 그룹화하는 자료형 구조체 선언

4.4.1 구조체 변수 선언 struct point struct point { { int x; int x; int y; 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.4.1 구조체 변수 선언 *구조체 선언과 변수 선언을 동시에 struct point { int x; int y; } p1, p2, p3;   *구조체 선언과 변수 선언을 따로 struct point { int x; int y; };   struct point p1, p2, p3;

4.4.1 구조체 변수 선언(p96) struct srec struct srec { { int hak; int hak; 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.4.1 구조체 변수 선언(p96) 예2) 구조체 선언과 변수 선언을 따로 struct srec { int hak; char name[10]; float jumsu; }; struct srec kim, park; 예1) 구조체 선언과 변수 선언을 동시에 struct srec { int hak; char name[10]; float jumsu; } kim, park;  

4.4.2 구조체 필드(멤버변수) 지정 #include <stdio.h> 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.4.2 구조체 필드(멤버변수) 지정 #include <stdio.h> struct srec // 구조체 srec 선언 { int hak; float jumsu; }; int main(void) struct srec kim, park; // 구조체 변수 kim, park 선언 kim.hak =12345; // 구조체 변수 kim의 필드(멤버변수) hak에 접근 kim.jumsu =95.5 ; // 구조체 변수 kim 의 필드(멤버변수) jumsu에 접근 printf("Kim의 학번= %d \n", kim.hak); printf("Kim의 점수= %3.1f \n", kim.jumsu); return 0; }

4.4.3 구조체형 배열 배열의 원소가 구조체인 배열 예1) 예2) 배열원소의 멤버변수에 값 지정 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.4.3 구조체형 배열 배열의 원소가 구조체인 배열 예1) 예2) 배열원소의 멤버변수에 값 지정

예제-구조체에 값 저장(P99) #include <stdio.h> struct list{ char name; 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 예제-구조체에 값 저장(P99) #include <stdio.h> struct list{ char name; char sex; int nai; }; int main( ){ struct list a, b; a.name = 'K'; a.sex = 'F'; a.nai = 40; b.name = 'S'; b.sex = 'M'; b.nai = 60; printf("No 이름 성별 나이\n"); printf("-----------------------------------------------\n"); printf("1 %c %c %d\n", a.name, a.sex, a.nai); printf("2 %c %c %d\n", b.name, b.sex, b.nai); return 0; }

예제-구조체의 초기화(p99) #include <stdio.h> struct list{ char *irum; 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 예제-구조체의 초기화(p99) #include <stdio.h> struct list{ char *irum; char sex; int age; } a = {"KIM", 'M', 33}, b = {"PARK", 'F', 60}; int main( ) { printf("No 이름 성별 나이\n"); printf("---------------------------------------------------\n"); printf(" 1 %s %c %d\n", a.irum, a.sex, a.age); printf(" 2 %s %c %d\n", b.irum, b.sex, b.age); return 0; }

예제-구조체 배열변수의 선언과 초기화-(p100) 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 예제-구조체 배열변수의 선언과 초기화-(p100) #include <stdio.h> struct list { char *name; char sex; int nai; } man[5] = {{"KIM", 'M', 33}, {"PARK", 'F', 70}, {"LEE", 'M', 10}, {"LOVE", 'M', 50}, {"STACK", 'F', 60}};

예제-구조체를 포함한 구조체-(p101) #include <stdio.h> struct date{ int yy; 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 예제-구조체를 포함한 구조체-(p101) #include <stdio.h> struct date{ int yy; int mm; int dd; }; struct person{ char name[10]; struct date birth; } saram; void main( ){ saram.birth.yy = 1980; saram.birth.mm = 6; saram.birth.dd = 1; scanf("%s", saram.name); printf("이름 : %s\n",saram.name); printf("생일 : %4d. %2d. %2d\n", saram.birth.yy, saram.birth.mm, saram.birth.dd); }

4.5 공용체(Union) 멤버 변수들이 메모리 공간을 공유해서 사용 선언형식 장점: 주기억 장소를 절약 union { 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.5 공용체(Union) 멤버 변수들이 메모리 공간을 공유해서 사용 장점: 주기억 장소를 절약 선언형식 공용체 멤버 변수의 선언: 구조체와 동일 공용체 변수의 선언: 구조체와 동일 멤버 변수 접근: 구조체와 동일 공용체의 시작을 알리는 키워드 union { char grade; int score; } ; mark 공용체 이름 멤버 변수 멤버 변수 m 공용체 변수

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.5 공용체(Union) 구조체(Struct)

수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.5 공용체(Union) 공용체(Union)

예제-구조체와 공용체의 크기 비교-(P103) #include <stdio.h> struct sb { char c; 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 예제-구조체와 공용체의 크기 비교-(P103) #include <stdio.h> struct sb { char c; int i; float f; } x1; union ub { } x2; int main( ) { int i, k; i = sizeof(struct sb); k = sizeof(union ub); printf("struct length == %d\n", i); printf("union length == %d\n", k); }

4.6 비트필드(bit field) 비트필드(Bit field) 선언 형식 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.6 비트필드(bit field) 비트필드(Bit field) 구조체나 공용체의 멤버를 바이트 단위가 아닌, 비트단위로 쪼개어 선언할수 있게 함으로써 기억공간을 알뜰하게 사용하게 함 선언 형식 각 멤버변수이름 다음에 이 멤버의 비트 크기를 적는다 자료형은 정수와 호환되는 모든 타입을 허용한다. (char, short, int등등) 멤버가 선언된 순서대로 하위 비트에서 순서대로 할당된다. struct { 자료형 멤버변수1 : bit수; 자료형 멤버변수2 : bit수; } ; 구조체 이름 구조체 변수

4.6 비트필드(bit field) 예1) 구조체 date의 선언-(P105) 기억장소에서의 표현상태 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.6 비트필드(bit field) 예1) 구조체 date의 선언-(P105) 기억장소에서의 표현상태

4.6 비트필드(bit field) 예2) 비트 필드 사용 예 #include <stdio.h> 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.6 비트필드(bit field) 예2) 비트 필드 사용 예 #include <stdio.h> struct samplebitfields { unsigned short a : 4; unsigned short b : 5; unsigned short c : 7; } test; int main( void ) test.a = 2; test.b = 31; test.c = 0; printf("\ntest의 기억상태(16진수)=%0x\n",test); }

4.7 열거형(enumerous) 열거형(enum) 선언형식 변수가 갖는 값에 의미를 부여 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.7 열거형(enumerous) 열거형(enum) 변수가 갖는 값에 의미를 부여 0,1,2,3,…값 대신 기호상수를 사용하여 변수값의 의미를 명확하게 알수 있음 함 선언형식 enum { } ; week sun, mon, tue, wed, fri, sat day 키워드 열거형이름 상수 이름 열거형변수

4.7 열거형(enumerous) 예1) 예2) ① sun, mon, ⋯, sat는 열거형 상수로, 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.7 열거형(enumerous) 예1) 예2) ① sun, mon, ⋯, sat는 열거형 상수로, 문자가 아니라 정수형을 가지며 ② sun부터 sat까지 각각 0, 1, 2, ⋯, 6이 된다. #include <stdio.h> void main( ) { enum week {sun, mon, tue=5, wed=2,thu, fri, sat } day; day = tue; printf("\nday=%d",day); day = sat; printf("\nday=%d\n",day); } ① sun=0, mon=1, tue=5가 되고 ② wed=2에 의해 이후는 하나씩 증가되어 tue=3, fri=4, sat=5가 된다.

#include <stdio.h> 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 #include <stdio.h> enum week {sun, mon, tue, wed, thu, fri, sat } ; int main( void ) { char *date[7]={"Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday","Saturday"}; printf("%s\n", date[sun]); printf("%s\n", date[wed+2]); }

4.8 사용자 정의(user-defined) ( ) 를 이용한 자료형의 재정의 기존 자료형을 새로운 이름으로 변경 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 4.8 사용자 정의(user-defined) ( ) 를 이용한 자료형의 재정의 기존 자료형을 새로운 이름으로 변경 프로그램의 가독성을 높일 수 있음

예제- typedef의 활용-(P109) #include <stdio.h> 수원과학대학 컴퓨터정보과 1학년 1학기 2019-04-22 예제- typedef의 활용-(P109) #include <stdio.h> #define PROGRAM main( ) #define BEGIN { #define END } #define PRINT printf typedef int jungsu; typedef float real; PROGRAM BEGIN enum week {sun, mon, tue=5, wed=2,thu, fri, sat } day; jungsu i=0; real j = 1.0; day = tue; PRINT("\nday=%d\n",day); END