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 프로그래밍
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
제 3강 입출력함수 ( scanf(), putchar(), gets(), puts() 예시 ) (0) | 2020.05.22 |
---|---|
제 3강 입출력함수(입출력함수 정리, printf () 예시 ) (0) | 2020.05.21 |
제2장 자료형과 선행처리기( 상수,변수) (0) | 2020.05.11 |
제 1장 c 언어의 개요 (1) | 2020.05.07 |
C프로그래밍 기말시험 기출문제(정답 포함) (0) | 2020.04.22 |