• 검색 결과가 없습니다.

구조체와 포인터 참고자료 (1)

N/A
N/A
Protected

Academic year: 2022

Share "구조체와 포인터 참고자료 (1)"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

구조체와 포인터 참고자료 (1)

1

(2)

공부할 내용

 구조체 안에 포인터 두기

 변수를 가리키는 포인터

 배열의 원소를 가리키는 포인터

 구조체 변수를 가리키는 포인터

 자신과 같은 형의 구조체 변수를 가리키는 포인터

 구조체 리스트 만들어 활용하기

 구조체 변수를 가리키는 포인터 활용

 구조체 리스트 생성과 출력

 함수에 구조체 변수를 파라미터로 보내기 (const 사용)

2

(3)

복습: 구조체를 가리키는 포인터

3

struct student s1, s2, s3;

s1 s2 s3

struct student *p, *q, *r;

p q r

(1) 포인터 p 가 s1 을 가리키도록 하시오. p = &s1;

(2) 포인터 q와 r이 각각 s2와 s3를 가리키도록 하시오. q = &s2; r = &s3;

(4)

(예제1) 학생들의 학과 주소 저장과 출력

 student 구조체는 학생의 이름과 학과 주소를 저장한다.

 컴퓨터공학과의 김이화 학생과 환경공학과의 홍이화 학생의 정보를 저장 하고자 한다. 이를 위해 student 구조체 변수 s1과 s2를 생성하고, 아래 그 림과 같은 정보를 저장한 후, 그 정보를 화면에 그대로 출력해 보시오.

4

(5)

5

(예제1) 프로그램

(6)

(예제2) 학과 주소를 배열에 별도 저장

 컴퓨터공학과와 환경공학과의 주소를 별도의 배열에 저장해 놓았다고 하자.

 (예제1)의 프로그램에서 student 구조체를 다음과 같이 수정해 보시오.

SchoolAddress 는 학과 주소가 저장되어 있는 배열을 가리킨다.

6

s1 김이화

s2 홍이화

서울특별시… 컴퓨터공학과 서울특별시… 환경공학과

(7)

(예제2) 프로그램

7

(8)

(예제3) 학과 주소를 구조체에 저장

 컴퓨터공학과와 환경공학과의 주소를 별도의 구조체 변수에 저장한다.

 앞의 프로그램에서 student 구조체를 다음과 같이 수정해 보시오.

SchoolAddress 는 학과 주소가 저장되어 있는 구조체 변수를 가리킨다.

8

s1 김이화

s2 홍이화

서울특별시…

컴퓨터공학과

서울특별시…

환경공학과 dept

student

(9)

(예제3) 프로그램

9

(10)

(예제4) 두 학생의 주소가 같을 때

 (예제3)의 프로그램을 다음과 같이 수정하고자 한다.

 박이화 학생은 김이화 학생과 학과 주소가 같다고 하자. 박이화 학생의 정보 를 담을 student 형 변수 s3을 정의하고 적절하게 초기화 해 보시오.

10

s1 김이화

s2 홍이화

서울특별시…

컴퓨터공학과

서울특별시…

환경공학과 student

s3 박이화

김이화 학생의 학과 정보를 활용하여 박이화 학생의 학과 정보를 초기화 하려는 것입니다.

(즉, 포인터 대입)

(11)

11

(예제4) 프로그램

(12)

(예제5) 학생 구조체의 정의

 다음과 같이 학생 구조체를 선언하자.

12

구조체 안에 “동일한 형의” 구조체 포인터를 정의하는 이유는

10쪽의 그림과 같이 구조체 변수들을 연결하려고 하기 때문입니다.

(13)

(예제5) 학생 정보 생성하기

옆의 그림에서와 같이

박슬기 학생의 레코드(구조체)를 생성해 보자.

(힌트)

#include <string.h>

strcpy(s1.name, “박슬기”);

s1.year = sophomore;

s1.next = &s2; 또는 s1.next = NULL;

13

(14)

(예제5) 프로그램

14

(15)

(예제6) 학생 정보 출력하는 함수

15

 student 형의 변수 한 개를

파라미터로 받은 후, 그 변수에 저장된 값을 화면에 출력하는 함수를

(예제5)에서 작성한 프로그램에 추가하시오.

printStudent(STUDENT s){

}

(16)

(예제6) 프로그램

16

(17)

(예제7) 학생 리스트 만들어 보기

 프로그램에서 다음과 같이 학생 레코드 (구조체) 들을 생성하고, 연결해 보자.

17

(18)

(실습7) 학생 리스트 출력해 보기

18

포인터가 가리키는 구조체 의 값을 바꾸지 않겠다.

(19)

19

(실습7) 프로그램

(20)

20

참조

관련 문서

 job_code가 0이면 job_info 공용체 변수의 school_name을 사용하고, job_code가 1이면 company_name을 사용한다...

5-6차시 참고자료 그림자극 추가 사진자료 Shadow

장치 레이저 포인터 오목거울

태도는 새로운 경험과 정보를 습득함으로써 지속적으로 변화하는 것으로 완전히 고정된 것이 아니므로 장애학생에 대한 일반 학생의 태도는

높은 학생을 선발하여서 장학금을 수여한다. 가장 평점이 높은 학생을 찾아서 학생의 이름과 학번, 평점을 화면에 출력하는 프로그램을 작성하여 보자.. 복소수를

공정이 관리상태에 있다고 판정하기 위해서는 관리한계선을 벗어난 점이 없거나 혹은 점의 배열에 아무런 습성이 없어야

CHAP 3:배열,

[r]