Presentation is loading. Please wait.

Presentation is loading. Please wait.

윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 17. 포인터의 포인터.

Similar presentations


Presentation on theme: "윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 17. 포인터의 포인터."— Presentation transcript:

1 윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 17. 포인터의 포인터

2 Chapter 17-1. 포인터의 포인터에 대한 이해
윤성우의 열혈 C 프로그래밍 Chapter 포인터의 포인터에 대한 이해 윤성우 저 열혈강의 C 프로그래밍 개정판

3 포인터 변수를 가리키는 이중 포인터 변수 윤성우의 열혈 C 프로그래밍 int main(void) {
포인터 변수의 주소 값을 저장하는 것이 이중 포인터 변수(더블 포인터 변수)이다. int main(void) { double num=3.14; double * ptr=# double ** dptr =&ptr; } 위의 상황에서 *dptr은 포인터 변수 ptr을... *(*dptr)은 변수 num을 의미하게 된다. 이 상황에서 변수 num에 접근하는 네 가지 방법은? 실행결과

4 포인터 변수의 Swap 1 윤성우의 열혈 C 프로그래밍 실행결과 ptr1과 ptr2의 swap은 성공하는가? 문제점은?

5 포인터 변수의 Swap 2 윤성우의 열혈 C 프로그래밍 실행결과
포인터 변수에 저장된 값의 변경이 목적이므로 포인터 변수의 주소 값을 함수에 전달해야 한다. 이중 포인터를 이용해서 두 포인터 변수의 swap에 성공한다. 실행결과

6 포인터 배열과 포인터 배열의 포인터 형 윤성우의 열혈 C 프로그래밍 실행결과 int * arr1[20];
Ch 13의 후반에 학습한 포인터 변수로 이뤄전 배열(포인터 배열) int * arr1[20]; double * arr2[30]; int arr1[3]; 에서 arr1의 포인터 형은 int * double arr2[3]; 에서 arr2의 포인터 형은 double * 이렇듯 1차원 배열이름의 포인터 형은 배열 이름이 가리키는 대상을 기준으로 결정된다. 따라서 int * arr1[20]; 에서 arr1의 포인터 형은 int ** double * arr2[30]; 에서 arr2의 포인터 형은 double ** 실행결과

7 Chapter 17-2. 다중 포인터 변수와 포인터의 필요성
윤성우의 열혈 C 프로그래밍 Chapter 다중 포인터 변수와 포인터의 필요성 윤성우 저 열혈강의 C 프로그래밍 개정판

8 이중 포인터를 가리키는 삼중 포인터 윤성우의 열혈 C 프로그래밍 int ***tptr; 실행결과 삼중 포인터 변수!
이중 포인터 변수의 주소 값을 담는 용도로 선언된다. int ***tptr; 실행결과 이중 포인터 변수의 개념을 그대로 확장해서 이해할 수 있는 것이 삼중 포인터 변수이다!

9 포인터의 필요성은 어디서 찾아야 하는가? 윤성우의 열혈 C 프로그래밍
. scanf 함수와 같이 함수 내에서 함수 외부에 선언된 변수의 접근을 허용하기 위해서. . 메모리의 동적 할당 등등 PART 04에서 공부하는 내용을 통해서 포인터의 필요성을 다양하게 이해하게 된다. . 향후에 자료구조라는 과목을 공부하게 되면 보다 넓게 필요성을 이해할 수 있게 된다.

10 Chapter 17이 끝났습니다. 질문 있으신지요?


Download ppt "윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 17. 포인터의 포인터."

Similar presentations


Ads by Google