3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용

Slides:



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

제6장 조건문.
데이터의 표현과 연산 (1) (Chapter 3)
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■.
구조체 활용 구조체 활용.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
제5장 제어명령
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
제 3 장. 배열과 구조체 및 포인터.
head data link data link data link NULL a b c
자료 구조: Chapter 3 (2)구조체, 포인터
8장 포인터.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
변수와 자료형.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
C 프로그래밍.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
Chapter 06. 선택문.
변수와 자료형.
Chapter 10. 포인터.
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
13. 포인터와 배열! 함께 이해하기.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
Chapter 10 함수 기본.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
4장 자료형.
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
18장. 다차원 배열 그리고 포인터.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
GDB - GNU Debugger 김진용.
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
Structures Summary.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Chapter 09. 배열.
11장. 1차원 배열.
Presentation transcript:

3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용 함수의 인자로 구조체 사용하기 열거형 한빛미디어(주)

구조체 정의 구조체 정의

구조체 변수의 선언 02 구조체 변수의 선언 students 구조체 정의 → 새로운 자료형(타입)이 됨 struct students { char name[20]; char address[30]; char tel[15]; int grade int age } ; int main( ) { struct students st1; ......... return 0; } students 구조체 정의 → 새로운 자료형(타입)이 됨 students 구조체 선언

구조체 포인터 선언 및 초기 03 구조체 포인터 선언 및 초기 struct ThreeDime { double x; double y; double z; }; typedef struct ThreeDime ThreeDime; ThreeDime A1= { 3, 1, 8}; // struct ThreeDime A1= { 3, 1, 8} 와 동일 ThreeDime *p = &A1; // 포인터 선언 및 초기화

【예제 11-1】Ex3b-1.c 02 구조체 초기화 예제 $ ./a.out NAME SEX AGE John M 25 #include <stdio.h> #include <string.h> struct list { char name[5]; char sex; int age; }; int main(void) { struct list st1 = { "John", 'M', 25}; struct list st2; strcpy(st2.name, "Mary"); st2.sex = 'F'; st2.age = 24; printf("%-5s %3s %3s\n", "NAME", "SEX", "AGE"); printf("%-5s %3c %3d\n", st1.name, st1.sex, st1.age); printf("%-5s %3c %3d\n", st2.name, st2.sex, st2.age); return 0; } $ ./a.out NAME SEX AGE John M 25 Mary F 24

【예제 11-2】Ex3b-2.c 02 구조체의 크기 #include <stdio.h> #include <string.h> struct list { char name[5]; char sex; int age; }; int main(void) { struct list st1 = { "John", 'M', 25}; struct list *p = &st1; printf("sizeof(struct list) = %d\n", sizeof(struct list)); printf("sizeof(st1) = %d\n", sizeof(st1)); printf("sizeof(p) = %d\n", sizeof(p)); return 0; } $ ./a.out sizeof(struct list) = 12 sizeof(st1) = 12 sizeof(p) = 4

구조체 포인터를 통한 구조체 멤버 접근 04 구조체 포인터를 통한 구조체 멤버 접근 구조체 포인터 -> 멤버명 ex ) p->x p->y p->z

【예제 11-6】Ex3b-6.c 02 구조체에 대한 포인터 #include <stdio.h> struct ThreeDim { double x; double y; double z; }; typedef struct ThreeDim ThreeDim; int main(void) ThreeDim a = {3, 1, 8}; printf("a = (%lf, %lf, %lf)\n", a.x, a.y, a.z); ThreeDim *p = &a; printf("a = (%lf, %lf, %lf)\n", p->x, p->y, p->z); } $ ./a.out a = (3.000000, 1.000000, 8.000000)

【예제 11-7】Ex3b-7.c 02 구조체를 함수에게 넘겨주기 #include <stdio.h> #include <math.h> struct ThreeDim { double x; double y; double z; }; typedef struct ThreeDim ThreeDim; double distance(ThreeDim p, ThreeDim q) double d; d = sqrt( (p.x - q.x)*(p.x - q.x) + (p.y - q.y)*(p.y - q.y) + (p.z - q.z)*(p.z - q.z) ); return d; } int main(void) { ThreeDim a = {3, 1, 8}; ThreeDim b = {-4, 2, 1}; printf("d = %lf\n", distance(a, b) ); } $ gcc -lm Ex3b-7.c $ ./a.out d = 9.949874

【예제 11-7】Ex3b-8.c 02 구조체 포인터를 함수에게 넘겨주기 #include <stdio.h> #include <math.h> struct ThreeDim { double x; double y; double z; }; typedef struct ThreeDim ThreeDim; double distance( ) double d; return d; } int main(void) { ThreeDim a = {3, 1, 8}; ThreeDim b = {-4, 2, 1}; printf("d = %lf\n", ); } $ gcc -lm Ex3b-8.c $ ./a.out d = 9.949874

【예제 11-7】Ex3b-9.c 02 구조체를 함수에게 넘겨주기 #include <stdio.h> #include <math.h> struct ThreeDim { double x; double y; double z; }; typedef struct ThreeDim ThreeDim; void middle(ThreeDim *p, ThreeDim *q, ThreeDim *m) m->x = (p->x + q->x) / 2; m->y = (p->y + q->y) / 2; m->z = (p->z + q->z) / 2; } int main(void) { ThreeDim a = {3, 1, 8}; ThreeDim b = {-4, 2, 1}; ThreeDim c; middle(&a, &b, &c); printf("c = (%lf, %lf, %lf)\n", c.x, c.y, c.z); } $ ./a.out c = (-0.500000, 1.500000, 4.500000)