C언어 포인터의 개념과 식 배열 및 문자열
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

6.1 포인터의 개념

6.2 포인터 식

6.3 배열과 포인터

6.4 문자열 상수 포인터

6.5 포인터 배열

본문내용

값으로 비교.
6.5 포인터 배열
다른 자료형처럼 포인터를 배열로 사용할 수 있다.
예. int *pa[20]; /* 20개의 원소를 갖는 정수형 포인터 배열 - 배열의 내용이 포인터 */
int myvar;
pa[8] = &myvar;
*pa[8] = 100;
예제. char *p[] = {
"Input exceeds field width",
"Out of range",
"Printer not turned on",
"Paper out",
"Disk full",
"Disk write error"
};
error(int err_num)
{
printf("%s\n", p[err_num]);
}
6.6 다중 간접 참조
포인터가 다른 포인터를 가리키는 것(pointer to pointer)
--
-------
--
-------
포인터에 대한 포인터
포인터
변수
포인터에 대한 포인터의 선언:
예. char **mp;
예:
char **mp, *p, ch;
p = &ch; /* ch의 주소를 얻는다. */
mp = &p; /* p의 주소를 얻는다. */
**mp = 'A'; /* 다중 간접 참조를 통하여 ch에 'A'를 치환한다. */
** 다중 간접 참조에 대한 깊이는 제한이 없으나 너무 많으면 추적하기 어렵다.
예제. #include "stdio.h"
main()
{
float *fp, **mfp, val;
fp = &val;
mfp = &fp;
**mfp = 123.903; /* val = 123.903; */
printf("%f, %f\n", val, **mfp);
}
예제. #include "stdio.h"
main()
{
char *p, **mp, str[80];
p = str;
mp = &p;
printf("Enter your name : ");
gets(*mp);
printf("Hi %s\n", *mp);
}
6.7 포인터 매개변수
포인터를 함수에 전달하면, 함수 내의 코드는 포인터를 전달받은 매개변수를 통하여
호출시의 변수를 직접 접근할 수 있다.
** 호출할 때의 변수 이름과 호출되는 함수의 매개변수 이름은 달라도 된다.
예.
int i = 5 ;
sample(&i) ;
:
sample(int *p)
{
*p = 10 ;
}
** 포인터를 전달받는 매개변수는 포인터와 같은 형의 포인터로 선언되어야만 한다.
예제. #include "stdio.h"
main()
{
myputs("This is a test.");
}
myputs(char *p)
{
while (*p) { /* p의 내용(*p)이 NULL이 아닌 동안 반복 */
printf("%c", *p); /* *p++ */
p++;
}
printf("\n");
}
예제. #include "stdio.h"
main()
{
char str[80];
mystrcopy(str, "This is a test");
printf("%s\n", str);
}
mystrcopy(char *to, char *from)
{
while (*from) /* from의 내용(*from)이 NULL이 아닌 동안 반복 */
*to++ = *from++; /* *to=*from; to++; from++; */
*to = '\0'; /* 문자열의 끝을 나타내는 널 문자를 넣는다. */
}
비교.
1) Call by value
#include "stdio.h"
main()
{
int a=10, b=20;
printf("Before : %d, %d\n", a, b);
swap(a, b);
printf("After : %d, %d\n", a, b);
}
swap(int p, int q)
{
int temp;
temp = p;
p = q;
q = temp;
printf("In swap : %d, %d\n", p, q);
}
2). Call by reference
#include "stdio.h"
main()
{
int a=10, b=20;
printf("Before : %d, %d\n", a, b);
swap(&a, &b);
printf("After : %d, %d\n", a, b);
}
swap(int *p, int *q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
printf("In swap : %d, %d\n", *p, *q);
}
프로그래밍 연습
6.1절 연습문제 4.
6.3절 연습문제 3.
6.4절 연습문제 1
6.5절 연습문제 1
6.7절 연습문제 1, 2
종합문제 1-5
종합문제 2-2

키워드

배열,   변수,   C언어,   포인터,   문자열,   상수
  • 가격1,300
  • 페이지수9페이지
  • 등록일2003.02.10
  • 저작시기2003.02
  • 파일형식한글(hwp)
  • 자료번호#221067
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니