반응형
SMALL

 

char형 포인터 : 문자열 처리에 효과적인 포인터
포인터 배열 : 포인터가 여러 개 사용될 때 포인터를 배열형식으로 사용
이중 포인터 : 자료가 있는 곳을 이중으로 가리키는 포인터

 

 

 

입벌려 예제 들어간다. 😆😆😆

( devc++ 활용)

 

10강 배열과 포인터 예제 모음

 

6-15.c

 

 

 

#include <stdio.h>

 

void main()

{

char *cp = "COMPUTER";

 

int i = 0;

do

printf("*(cp + %d) : %c \n", i, *(cp+i));

while(*(cp + i++) != '\0'); 

 

실행 결과

 

 

 

 

 

 

6-16.c (강의 예제)

 

 

#include <stdio.h>

 

void main()

{

static int a[] = {10, 20, 30, 40, 50};

int *pt, b, c, d;

pt = a;

b = *pt + *(pt + 3);

pt ++;

c = *pt + *(pt + 3);

d = *pt + 3;

printf("b = %d, c = %d, d = %d", b, c, d);

}

 

실행 결과

 

 

 

 

 

 

 

6.16.c

 

 

#include <stdio.h>

 

void main()

{

static int a[] = {10, 20, 30, 40 ,50};

int *pa , b, c, d;

pa = a;

b = *pa + *(pa + 4);

pa += 4;

c = *pa + *(pa - 4);

d = *pa +5;

printf("b = %d, c = %d, d = %d", b, c, d);

}

 

실행 결과

 

 

 

 

 

 

6-17.c ( 강의 예제)

 

 

#include <stdio.h>

 

void main()

{

static a[3][3] =

{{1,2,3}, {4,5,6}, {7,8,-9}};

 

int *pt;

pt = a[0];

while(*pt != - 9)

{

printf("%d ", *pt);

pt ++;

}

 

}

 

실행예제

 

 

 

 

 

 

6-17.c

 

 

#include <stdio.h>

 

void main()

{

static a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};

 

int i, j, *pt;

pt = a[0];

while(pt <= &a[2][2])

{

for(i = 0; i < 3; i++)

{

for(j = 0; j <3; j++)

{

printf("a[%d][%d] = %d ", i, j, *pt);

pt ++;

}

printf("\n");

}

}

}

 

 

실행 예

 

 

 

 

 

6-18.c

 

 

 #include <stdio.h>

 

 void main()

 {

  char A[] = "ARRAY";

  char *p = "POINTER";

 

  int i;

  for(i = 0; i < 5; i++)

  printf("*(A+%d) : %c \n", i, *(A+i));

  for(i = 0; i <7; i++)

  printf("p[%d] : %c \n", i, p[i]);

 }

 

실행 예

 

 

 

 

 

6-18.c

 

 

#include <stdio.h>

 

void main()

{

char A[] = "CSKNOU";

char *p = A;

int i;

int size = sizeof(A);

for(i = 0; i < size -1; i++)

printf("*(A + %d) : %c \n", i, *(A + i));

for(i = 0; i < size -1; i++)

printf("p[%d] : %c \n", i, p[i]);

}

 

실행 예시

 

 

 

 

 

 

6-19.c

 

 

 

#include <stdio.h>

 

int score_sum1(int gr[], int);

int score_sum2(int *gr, int);

 

void main()

{

int score[5] = { 10, 20, 30, 40, 50};

int sum1, sum2;

sum1 = score_sum1(score, 5);

sum2 = score_sum2(score, 5);

printf("sum1 = %d \n", sum1);

printf("sum2 = %d \n", sum2);

}

 

int score_sum1(int gr[], int size)

{

int sum1 = 0;

int i;

for(i = 0; i <size; i++)

sum1 += gr[i];

return sum1;

}

 

int score_sum2(int *gr, int size)

{

int sum2 = 0;

int i;

for(i = 0; i < size; i++)

sum2 += gr[i];

return sum2;

 

}

 

 

실행 예

 

 

 

 

 

 

6-20.c

 

 

  #include <stdio.h>

  

  void main()

  {

   int a[] = {1, 2, 3, 4};

   int b[] = {5, 6, 7, 8};

  

   int *PA[2];

   PA[0] = a;

   PA[1] = b;

   printf("*(PA[0]) = %d \n", *(PA[0]));

   printf("*(PA[0+1]) = %d \n", *(PA[0])+1);

   printf("*(PA[1]) = %d \n", *(PA[1]));

   printf("*(PA[1] + 15) = %d \n", *(PA[1]) + 15);

   } 

 

 

실행 예

 

 

 

 

6-21.c

 

 

//이중 포인터

 

#include <stdio.h> 

 

void main()

{

char a = 'A', *p, **pp;

p = &a;

pp = &p;

printf("**pp = %c", **pp);

}

 

실행 예

 

 

 

 

 

 

 

오늘 배운 #10강 내용!! #실습 #예제

 

 

#힘들다 #마음은 #이해 하는데 #머리가 안따라간다!!!!!!!!!!!!

 

 

 

 

 

 

 

#c 프로그래밍

 

 

 

 

 

 

 

 

반응형
LIST

+ Recent posts