Prosto
포인터 (Pointer) - 기초2 본문
포인터의 포인터..
int * ptr; 이라는 포인터가 있을 때
int ** dptr; 이라는 것도 있을 수 있습니다.
간단한 예문
#include<stdio.h>
int main(void)
{
int na=20;
int * ptr = &na;
int ** dptr = &ptr;
printf("%#x \n%#x \n%#x \n\n", na, ptr, dptr);
printf("%d, %d, %d", na, *ptr, **dptr);
return 0;
}
위에서 볼 수 있듯
na = *ptr = **dptr 결과라는 것을 알 수 있습니다.
**dptr -가리킴-> *ptr -가리킴-> na
dptr은 ptr의 주소를 가리키고 있고,
ptr은 na의 주소를 가리키고 있습니다.
그렇기에 na = *ptr = **dptr이 된거죠.
저번에 있던 포인터 포스트의 확장 정도로 보면 됩니다.
그런식으로
*, **, *** ...과 같이 포인터가 이중, 삼중... 으로 사용 가능한 것이죠.
int ** dptr; 이라는 것도 있을 수 있습니다.
간단한 예문
#include<stdio.h>
int main(void)
{
int na=20;
int * ptr = &na;
int ** dptr = &ptr;
printf("%#x \n%#x \n%#x \n\n", na, ptr, dptr);
printf("%d, %d, %d", na, *ptr, **dptr);
return 0;
}
위에서 볼 수 있듯
na = *ptr = **dptr 결과라는 것을 알 수 있습니다.
**dptr -가리킴-> *ptr -가리킴-> na
dptr은 ptr의 주소를 가리키고 있고,
ptr은 na의 주소를 가리키고 있습니다.
그렇기에 na = *ptr = **dptr이 된거죠.
저번에 있던 포인터 포스트의 확장 정도로 보면 됩니다.
그런식으로
*, **, *** ...과 같이 포인터가 이중, 삼중... 으로 사용 가능한 것이죠.
포인터 배열
포인터와 배열의 개념을 합친 것.
int arr[3];
->int형 arr변수 배열 선언.
int* arr[3]
->int형 포인터 arr변수 배열 선언.
int arr[3];
->int형 arr변수 배열 선언.
int* arr[3]
->int형 포인터 arr변수 배열 선언.
문자열 배열
- 2차원 배열 기반의 문자열 배열
- 포인터 기반의 문자열 배열
- 포인터 기반의 문자열 배열
char*(캐릭터형 포인터)로 '캐릭터형 문자열'을 가리킵니다.
동적입니다. 가리키는 것이기 때문에 배열이 바뀔 수 있습니다.
1.
char str1[]="Hello";
char str2[]="Programing";
char str3[]="Story";
char *stArr[3] = {str1, str2, str3};
-> *stArr[0][1][2] => str1, str2, str3의 주소값으로 사용.
2.
char *stArr[3] = {"Hello", "Programing", "Story"};
-> *stArr[0][1][2] => H, P, S의 주소값 반환 받아 사용.
각 상황에 맞게 선택하여 사용하는 것이 좋습니다!
동적입니다. 가리키는 것이기 때문에 배열이 바뀔 수 있습니다.
1.
char str1[]="Hello";
char str2[]="Programing";
char str3[]="Story";
char *stArr[3] = {str1, str2, str3};
-> *stArr[0][1][2] => str1, str2, str3의 주소값으로 사용.
2.
char *stArr[3] = {"Hello", "Programing", "Story"};
-> *stArr[0][1][2] => H, P, S의 주소값 반환 받아 사용.
각 상황에 맞게 선택하여 사용하는 것이 좋습니다!
궁금한 점 있으시거나, 추가 도움말 주실 분은 댓글 달아주세요 ^^
'Programing > C Programing' 카테고리의 다른 글
컴파일 에러 (LNK1207, RC1015 등) (0) | 2016.09.09 |
---|---|
난수 발생 시키기. (0) | 2011.09.25 |
1년 달력 계산 (윤년) (5) | 2011.05.15 |
포인터 (Pointer) - 기초 (2) | 2011.05.13 |
프로그래밍 시 유의사항 (팁) (2) | 2011.05.13 |
Comments