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.