3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

Similar documents
4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

슬라이드 1

Microsoft PowerPoint - chap06-2pointer.ppt

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

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

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

11장 포인터

Microsoft PowerPoint - ch07 - 포인터 pm0415

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

C 언어 프로그래밊 과제 풀이

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

Microsoft PowerPoint - chap11-포인터의활용.pptx

untitled

untitled

Microsoft PowerPoint - Chapter_04.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

11장 포인터

Microsoft PowerPoint - Chapter_08.pptx

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

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

02장.배열과 클래스

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

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 \

untitled

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

PowerPoint Template

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

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

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

설계란 무엇인가?

BMP 파일 처리

C++ Programming

chap8.PDF

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


Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - C_9장 포인터 pptx

C++-¿Ïº®Çؼ³10Àå

Infinity(∞) Strategy

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

C프로-3장c03逞풚

ABC 6장

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

OCW_C언어 기초

03장.스택.key

Microsoft PowerPoint - chap12-고급기능.pptx

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

Microsoft PowerPoint - chap-11.pptx

C 프로그래밊 개요


PowerPoint 프레젠테이션

기초컴퓨터프로그래밍

Microsoft PowerPoint - chap10-함수의활용.pptx

chap7.PDF

歯7장.PDF

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

PART

Part Part

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

ch15

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

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

K&R2 Reference Manual 번역본

OCW_C언어 기초

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

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>


중간고사

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float


Data Structure

<BACFC7D1B3F3BEF7B5BFC7E22D3133B1C733C8A BFEB2E687770>


歯2019

컴파일러

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

chap7.key

본 강의에 들어가기 전

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

Microsoft PowerPoint - Chapter14_17.pptx

untitled

Microsoft PowerPoint - Lesson14.pptx

Microsoft PowerPoint - Lesson14.pptx

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

Data Structure

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

Transcription:

- Part2-3

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

3.1 포인터란

ü ü ü. ü. ü. ü ( )

? 3.1 ü. ü C ( ).? ü ü PART2-4 ü ( ) PART3-4

3.2 포인터변수의선언과사용

3.2 포인터 변수의 선언과 사용 (1/8) 포인터 변수의 선언 ü 자료형: 포인터 변수의 자료형 지정, 자료형 다음에 * 연산자를 붙임 ü 포인터 변수 이름: 주소를 저장할 변수의 이름 지정 ü NULL 포인터 설정: 포인터 변수 선언 시 NULL로 초기화 int* p1=null; // int형 주소를 저장하는 포인터 변수 char* p2=null; // char형 주소를 저장하는 포인터 변수 double* p3=null; // double형 주소를 저장하는 포인터 변수

3.2 (2/8)- - - [3-2.c ] #include <stdio.h> int main(void) { // char* cp=null; int* ip=null; pring("%x %x %x\n", &cp, cp, *&cp); pring("%x %x %x\n", &ip, ip, *&ip); &ip &cp 0 0 ip==*&ip cp==*&cp } pring("%d %d \n", sizeof(char*), sizeof(int*)); // 4, 4 pring("%d %d \n", sizeof(cp), sizeof(ip)); // 4, 4 return 0; 4.

3.2 (3/8)- - - [3-3.c ] #include <stdio.h> int main( ) { char c='a'; char* cp=null; cp=&c; // &cp &c &c A cp==*&cp c==*&c } pring("%x %c %c \n", &c, c, *&c); pring("%x %x %x \n", &cp, cp, *&cp); pring("%c \n", c); // pring("%c \n", *cp); // return 0; c == *&c == *cp

3.2 (4/8)- - - [3-4.c ] #include <stdio.h> int main( ) { int a=0, b=0, c=0; int* ip=null; // &ip &b &a &c ip ip=&a; // *ip=10; pring("%d %d %d %d\n", a, b, c, *ip); &c 30 0 c ip=&b; // *ip=20; pring("%d %d %d %d\n", a, b, c, *ip); &b 20 0 b } ip=&c; // *ip=30; pring("%d %d %d %d\n", a, b, c, *ip); return 0; &a 10 0 a

3.2 (5/8)- - - [3-5.c ] #include <stdio.h> int main( ) { int num=10; int* ip=null; // ip=&num; // &ip &num &num 10 ip num==*ip } pring("%x %x %d \n", &*&ip, *&ip, **&ip); pring("%x %x %d \n", &ip, ip, *ip); return 0; *&

3.2 (6/8)- - - [3-6.c ] #include <stdio.h> int main( ) { int num1=10; int num2=0; int* ip=null; // &ip &num2 ip num2 } ip=&num1; // num2=*ip+num1; pring("%d %d %d\n", *ip, num1, num2); return 0; &num1 num1

#include <stdio.h> int main(void) { int* ip=null; *ip=10000; return 0; } 3.2 (7/8) #include <stdio.h> int main(void) { int* ip=14592343; *ip=1020; return 0; }

3.2 (8/8) 2 #include <stdio.h> int main(void) { int num=10; int* ip=null; ip=&num; return 0; } == #include <stdio.h> int main(void) { int num=10; int* ip=&num; return 0; }

3.3 다차원포인터변수의선언과사용

3.3 다차원 포인터 변수의 선언과 사용 (1/11) 다차원 포인터 변수란? ü 2차원 이상의 포인터 변수를 의미한다.

3.3 (2/11) 1 : #include <stdio.h> int main(void) { int num=10; int* p1=null; p1=&num; return 0; } &p1 &num &num 10 p1 num==*p1

3.3 (3/11) 2 : 1 #include <stdio.h> int main(void) { int num=10; int* p1=null; int** p2=null; &p2 &p1 &p1 &num p2 p1 } p1=&num; p2=&p1; return 0; &num 10 num

3.3 (4/11) 3 : 2 #include <stdio.h> int main(void) { int num=10; int* p1=null; int** p2=null; int*** p3=null; } p1=&num; p2=&p1; p3=&p2; return 0; &p3 &p2 &p1 &num &p2 &p1 &num 10 p3 p2 p1 num

3.3 (5/11)- - - [3-7.c ] #include <stdio.h> int main( ) { char c1='a'; char* cp=null; char** cpp=null; &cpp &cp cpp cp=&c1; cpp=&cp; &cp &c1 cp } pring("%c %x %x \n", c1, cp, cpp); pring("%x %x %x \n", &c1, &cp, &cpp); pring("%c %c %c \n", c1, *cp,**cpp); return 0; &c1 A c1

3.3 (6/11)- - - [3-8.c ] #include <stdio.h> int main( ) { int num1=10; int* ip=null; int** ipp=null; } ip=&num1; ipp=&ip; pring("%d %x %x \n", num1, ip, ipp); pring("%x %x %x \n", &num1, &ip, &ipp); pring("%d %x %x \n", *&num1, *&ip, *&ipp); pring("%d %d %d \n", num1, *ip, **ipp); pring("%x %x %x \n", &num1, ip, *ipp); return 0;

3.3 다차원 포인터 변수의 선언과 사용 (7/11)- - - [3-8.c 분석]

3.3 (8/11)- - - [3-9.c ] int num1=10; int* ip1=null; int** ip2=null; int*** ip3=null; ip1=&num1; ip2=&ip1; ip3=&ip2; pring("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3); pring("%x %x %x %x \n", &num1, ip1, *ip2, **ip3); pring("%x %x %x \n", &ip1, ip2, *ip3); pring("%x %x \n", &ip2, ip3); pring("%d %d \n", sizeof(int), sizeof(int*)); pring("%d %d\n", sizeof(int**), sizeof(int***)); pring("%d %d \n", sizeof(num1), sizeof(ip1)); pring("%d %d\n", sizeof(ip2), sizeof(ip3));

3.3 (9/11)- - - [3-9.c ] ip3==&ip2 *ip3==ip2==&ip1 **ip3==*ip2==ip1==&num1 ***ip3==**ip2==*ip1==num1==10

3.3 (10/11)- - - [3-10.c ] int num1=10; int* ip1=null; int** ip2=null; int*** ip3=null; ip1=&num1; ip2=&ip1; ip3=&ip2; pring("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3); *ip1=20; pring("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3); **ip2=30; pring("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3); ***ip3=40; pring("%d %d %d %d \n", num1, *ip1, **ip2, ***ip3);

3.3 다차원 포인터 변수의 선언과 사용 (11/11)- - - [3-10.c 분석]

3.4 주소의가감산

3.4 (1/8)- - - [3-11.c ] #include <stdio.h> int main( ) { char c='a'; char* cp=null; char** cpp=null; } cp=&c; cpp=&cp; pring("%x %x %x \n", &c, &cp, &cpp); pring("%x %x %x \n", &c+1, &cp+1, &cpp+1); pring("%c %x %x \n", c, cp, cpp); pring("%c %x %x \n", c+1, cp+1, cpp+1); return 0;

3.4 주소의 가감산 (2/8)- - - [3-11.c 분석] pring("%x %x %x \n", &c, &cp, &cpp); pring("%x %x %x \n", &c+1, &cp+1, &cpp+1);

3.4 주소의 가감산 (3/8)- - - [3-11.c 분석] pring("%c %x %x \n", c, cp, cpp); pring("%c %x %x \n", c+1, cp+1, cpp+1);

3.4 (4/8)- - - [3-12.c ] #include <stdio.h> int main( ) { int num=10; int* ip=null; int** ipp=null; } ip=&num; ipp=&ip; pring("%x %x %x \n", &num, &ip, &ipp); pring("%x %x %x \n", &num+1, &ip+1, &ipp+1); pring("%d %x %x \n", num, ip, ipp); pring("%d %x %x \n", num+1, ip+1, ipp+1); return 0;

3.4 주소의 가감산 (5/8)- - - [3-12.c 분석]

3.4 주소의 가감산 (6/8)- - - [3-12.c 분석]

3.4 (7/8)- - - [3-13.c ] #include <stdio.h> int main( ) { int array[3]={10,20,30}; int* ip=null; int** ipp=null; ip=array; ipp=&ip; pring("%d %d %d \n", array[0], array[1], array[2]); pring("%d %d %d \n", *(ip+0), *(ip+1), *(ip+2)); pring("%d %d %d \n", *(*ipp+0), *(*ipp+1), *(*ipp+2)); } return 0;

3.4 주소의 가감산 (8/8)- - - [3-13.c 분석]

3.5 함수포인터

3.5 (1/5)- - - [3-14.c ] #include <stdio.h> int main(void) { pring( %x %x %x \n, main, priny, scanf); return 0; }

3.5 (2/5) : ü : ü : * ü :

3.5 (2/5)- - - [3-15.c ] #include <stdio.h> void add(double num1, double num2); int main( ) { double x=3.1, y=5.1; void (*pointer) (double, double); // } pring("add : %x\n", add); pring(" : %x \n", &pointer); pointer=add; pointer(x, y); // return 0; 12ff40 add add add() pointer void add(double num1, double num2) { double result; result=num1+num2; pring("%lf + %lf = %lf.\n", num1, num2, result); }

3.5 (3/5)- - - [3-15.c ] void add (double num1, double num2) void (*pointer) (double, double ) pointer = add; pointer(3.1, 5.1);

3.5 (4/5)- - - [3-16.c ] [3-16.c ] int x, z; char c; void (*pointer) (int, int); scanf( %d %c %d, &x, &c, &z); if(c=='+') pointer=add; else if(c=='- ') pointer=subtract; pointer(x,z);

3.5 (5/5)- - - [3-16.c ] if(c=='+') pointer=add; c == + else if(c=='- ') pointer=subtract; c == - &pointer add pointer &pointer subtract pointer subtract subtract( ) subtract( ) add add( ) add( ) 17 ~18 20 ~21

3.5 (5/5)- - - [3-16.c ] ü. ü,,