untitled

Similar documents
Microsoft PowerPoint - chap-11.pptx

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

Microsoft PowerPoint - 제11장 포인터

11장 포인터

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

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415

untitled

untitled

OCW_C언어 기초

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

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

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

ch15

슬라이드 1

중간고사

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

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

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

Microsoft PowerPoint - Chapter_08.pptx

Microsoft PowerPoint - chap04-연산자.pptx

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 \

Microsoft PowerPoint - chap06-2pointer.ppt

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

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

untitled

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

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

Data Structure

11장 포인터

Microsoft PowerPoint - C_9장 포인터 pptx

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

쉽게 풀어쓴 C 프로그래밍

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

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

Microsoft PowerPoint - 04_C_Language_Function

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

Microsoft PowerPoint - chap12-고급기능.pptx

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

02장.배열과 클래스

5.스택(강의자료).key

PowerPoint 프레젠테이션

Infinity(∞) Strategy

歯9장.PDF

Microsoft PowerPoint - Chapter_04.pptx

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

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

본 강의에 들어가기 전

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

, ( ),, ( ), 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

Microsoft PowerPoint - Chapter14_17.pptx

Microsoft PowerPoint - Lesson14.pptx

Microsoft PowerPoint - Lesson14.pptx

03장.스택.key


Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

PowerPoint Presentation

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


CHAP 3:배열, 구조체, 포인터

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

K&R2 Reference Manual 번역본

Chapter_06

설계란 무엇인가?

PowerPoint 프레젠테이션

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

KNK_C_05_Pointers_Arrays_structures_summary_v02

Microsoft PowerPoint - 2장 변수와 자료형 pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (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 - chap13-입출력라이브러리.pptx

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - Chapter8.pptx

PowerPoint Presentation

Microsoft PowerPoint - 05-chap03-ArrayAndPointer.ppt

ABC 6장

OCW_C언어 기초

Microsoft PowerPoint - Chapter_09.pptx

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

6.1 Addresses and Pointers Recall memory concepts from Ch2 ch6_testbasicpointer.c int x1=1, x2=7; double distance; int *p; int q=8; p = &q; name addre

Microsoft PowerPoint - chap06-1Array.ppt

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

Microsoft PowerPoint - Chapter_05.pptx

Microsoft PowerPoint - chap-09.pptx

Microsoft PowerPoint - ch 전처리기, 다중 소스파일 pm1015

Microsoft PowerPoint - [2009] 02.pptx

chap01_time_complexity.key

쉽게 풀어쓴 C 프로그래밍

chap8.PDF

<4D F736F F F696E74202D20C1A639C0E520C7D4BCF6BFCDBAAFBCF6>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap05-제어문.pptx

chap 5: Trees

Transcription:

int i = 10; char c = 69; float f = 12.3;

int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015 f : 1245000

int i = 10; int *p = &i; // 정수형변수 i 선언 // 변수 i 의주소가포인터 p 로대입

char c = 'A'; float f = 36.5; double d = 3.141592; // 문자형변수 c // 실수형변수 f // 실수형변수 d char *pc = &c; float *pf = &f; double *pd = &d; // 문자를가리키는포인터 pc // 실수를가리키는포인터 pf // 실수를가리키는포인터 pd

int i = 10; int *p = &i; printf("%d\n", *p); // 10 이출력된다. *p = 20; printf("%d\n", *p); // 20이출력된다.

int *p = 8; char *pc = 8; double *pd = 8; // 8. // 8. // 8.

#include <stdio.h> int i = 3000; int *p = &i; // 변수와포인터연결 printf("&i = %u\n", &i); printf("p = %u\n", p); // 변수의주소출력 // 포인터의값출력 printf("i = %d\n", i); // 변수의값출력 printf("*p = %d\n", *p); // 포인터를통한간접참조값출력 return 0; &i = 1245024 p = 1245024 i = 3000 *p = 3000

#include <stdio.h> char c = 'A'; int i = 10000; double d = 6.78; // 문자형변수정의 // 정수형변수정의 // 실수형변수정의 *pc++ char *pc = &c; // 문자형포인터정의및초기화 int *pi = &i; // 정수형포인터정의및초기화 double *pd = &d; // 실수형포인터정의및초기화 (*pc)++; *pi = *pi + 1; *pd += 1; // 간접참조로 1 증가 // 간접참조로 1 증가 // 간접참조로 1 증가 printf("c = %c\n", c); printf("i = %d\n", i); printf("d = %f\n", d); c=b i = 10001 d = 7.780000 return 0;

#include <stdio.h> int i = 10000; int *p, *q; // 정수변수정의 // 정수형포인터정의 p = &i; q = &i; // 포인터 p 와변수 i 를연결 // 포인터 q 와변수 i 를연결 *p = *p + 1; // 포인터 p를통하여 1 증가 *q = *q + 1; // 포인터 q 를통하여 1 증가 printf("i = %d\n", i); return 0; i = 10002

#include <stdio.h> int i; double *pd; pd = &i; *pd = 36.5; //! double 형포인터에 int 형변수의주소를 return 0;

int *p; // p *p = 100; // return 0;

++ char 1 short 2 int 4 float 4 double 8

// #include <stdio.h> char *pc; int *pi; double *pd; pc = (char *)10000; pi = (int *)10000; pd = (double *)10000; printf(" pc = %d, pi = %d, pd = %d\n", pc, pi, pd); pc++; pi++; pd++; printf(" pc = %d, pi = %d, pd = %d\n", pc, pi, pd); return 0; pc = 10000, pi = 10000, pd = 10000 pc = 10001, pi = 10004, pd = 10008

#include <stdio.h> int i, j, *p1, *p2; p1 = &i; p2 = &j; if( p1!= NULL ) printf("p1 NULL \n"); if( p1!= p2 ) printf("p1 p p2 \n"); ) if( p1 < p2 ) printf("p1 p2 \n"); else printf("p1 p2 \n"); return 0; p1 NULL p1 p2 p1 p2

v = *p++ p 가가리키는값을 v 에대입한후에 p 를증가한다. v=(*p)++ p 가가리키는값을 v 에대입한후에가리키는값을증가한다. v = *++p p 를증가시킨후에 p 가가리키는값을 v 에대입한다. v = ++*p p 가가리키는값을가져온후에그값을증가하여 v 에대입한다. // #include <stdio.h> int i = 10; int *pi = &i; i = 10, pi = 0012FF60 i=11,pi=0012ff60 i = 11, pi = 0012FF60 i=11,pi=0012ff64 printf("i = %d, pi = %p\n", i, pi); (*pi)++; printf("i = %d, pi = %p\n", i, pi); printf("i = %d, pi = %p\n", i, pi); *pi++; printf("i i = %d, pi = %p\n", i, pi); return 0;

// #include <stdio.h> int a[] = 10, 20, 30, 40, 50 ; printf("&a[0] = %u\n", &a[0]); printf("&a[1] = %u\n", &a[1]); printf("&a[2] = %u\n", &a[2]); printf("a = %u\n", a); return 0; &a[0] = 1245008 &a[1] = 1245012 &a[2] = 1245016 a = 1245008

// #include <stdio.h> int a[] = 10, 20, 30, 40, 50 ; printf("a = %u\n", a); printf("a + 1 = %u\n", a + 1); printf("*a = %d\n", *a); printf("*(a+1) (a = %d\n", *(a+1)); return 0; a = 1245008 a + 1 = 1245012 *a = 10 *(a+1) =20

// #include <stdio.h> int a[] = 10, 20, 30, 40, 50 ; int *p; p = a; printf("a[0]=%d a[1]=%d a[2]=%d \n", a[0], a[1], a[2]); printf("p[0]=%d p[0] p[1]=%d p[2]=%d \n\n", p[0], p[1], p[2]); p[0] = 60; p[1] = 70; p[2] = 80; printf("a[0]=%d a[1]=%d a[2]=%d \n", a[0], a[1], a[2]); printf("p[0]=%d p[1]=%d p[2]=%d \n", p[0], p[1], p[2]); return 0; a[0]=10 a[1]=20 a[2]=30 p[0]=10 p[1]=20 p[2]=30 a[0]=60 a[1]=70 a[2]=80 p[0]=60 p[1]=70 p[2]=80

int get_sum1(int a[], int n) int i; int sum = 0; for(i = 0; i < n; i++ ) sum += a[i]; return sum; int get_sum2(int a[], int n) int i; int *p; int sum = 0; p = a; for(i = 0; i < n; i++ ) sum += *p++; return sum;

#include <stdio.h> void print_reverse(int a[], int n); int a[] = 10, 20, 30, 40, 50 ; print_reverse(a, 5); return 0; void print _ reverse(int a[], int n) int *p = a + n - 1; //. while(p >= a) // printf("%d\n", *p--); // p 50 40 30 20 10

100 int i = 100; 100 i int sub( int v ) 100 v... sub( i );......

#include <stdio.h> void sub(int *p); int i = 100; sub(&i); return 0; void sub(int *p) *p = 200; int i = 100;... sub( &i ); 96 int sub( int *p )...... 100 i 96 93 94 95 96 97 98 99 100 p

#include <stdio.h> void swap(int x, int y); int a = 100, b = 200; printf("main() a=%d b=%d\n",a, b); swap(a, b); printf("main() a=%d b=%d\n",a, b); return 0; void swap(int x, int y) int tmp; printf("swap() x=%d y=%d\n",x, y); tmp = x; x = y; y = tmp; printf("swap() x=%d y=%d\n",x, y); main() a=100 b=200 swap() x=100 y=200 swap() x=200 y=100 main() a=100 b=200

#include <stdio.h> void swap(int x, int y); int a = 100, b = 200; printf("main() a=%d b=%d\n",a, b); swap(&a, &b); void swap(int *px, int *py) int tmp; printf("swap() *px=%d *py=%d\n", *px, *py); tmp = *px; *px = *py; *py = tmp; printf("main() i () a=%d b=%d\n",a, b); return 0; printf("swap() () *px=%d *py=%d\n", *px, *py); main() a=100 b=200 swap() *px=100 *py=200 swap() *px=200 *py=100 main() a=200 b=100

#include <stdio.h> // y int get_line_parameter(int x1, int y1, int x2, int y2, float *slope, float *yintercept) if( x1 == x2 ) return -1; else *slope = (float)(y2 - y1)/(float)(x2 - x1); *yintercept = y1 - (*slope)*x1; return 0; float s, y; if( get_line_parameter(3, 3, 6, 6, &s, &y) == -1 ) printf("\n"); else printf(" %f, y %f\n", s, y); return 0; 1.000000, y 0.000000

// 매개변수 x에기억장소가할당된다. void sub(int x)... // 매개변수 b[] 에기억장소가할당되지않는다. void sub(int b[], int n)...

// #include <stdio.h> void sub(int b[], int n); int a[3] = 1,2,3 ; printf("%d %d %d\n", a[0], a[1], a[2]); sub(a, 3); printf("%d %d %d\n", a[0], a[1], a[2]); return 0; void sub(int b[], int n) b[0] = 4; b[1] = 5; b[2] = 6; 1 2 3 4 5 6

int *add(int x, int y) int result; result.!! result = x + y; return &result;

A N C D E A C D E B B

burger_kor[] burger_usa[] burger_jap[] p_burger #include <stdio.h> int burger_kor[3]= 3000, 2000, 4000 ; int burger_usa[3] usa[3]= 3500, 2600, 5000 ; int burger_jap[3]= 3200, 2700, 4500 ; int country; int *p_burger=null; printf(" :"); scanf("%d", &country); if( country == 0 ) p_burger = burger_kor; else if( country == 1 ) p_burger = burger_usa; else p_burger = burger_jap; printf(" :"); printf("%d %d %d\n", p_burger[0],p_burger[1],p_burger[2]); return 0;

void bubble_sort(int *p, int n) int i, scan; // for(scan = 0; scan < n-1; scan++) // for(i = 0; i < n-1; i++) // if( p[i] > p[i+1] ) swap(&p[i], &p[i+1]); void swap(int *px, int *py) int tmp; tmp = *px; *px = *py; *py = tmp;

#include <stdio.h> #define SIZE 10 void get_max_min(int list[], int size, int *pmax, int *pmin); int max, min; int grade[size] = 3, 2, 9, 7, 1, 4, 8, 0, 6, 5 ; get_max_min(grade, SIZE, &max, &min); printf(" %d, %d.\n", max, min); return 0;

void get_max_min(int list[], int size, int *pmax, int *pmin) int i, max, min; max = min = list[0]; //, for(i = 1;i < size; i++) //, if( list[i] > max) // list[i] max = list[i]; [] // list[i] [] if( list[i] < min) // list[i] min = list[i]; // list[i] *pmax = max; *pmin = min; 9, 0.