SH1R0_HACKER
C언어 :: 포인터 정리(1) - 포인터란? 본문
// 포인터 정리(1)
// 포인터 (pointer) : 변수의 주소를 저장하는 변수
#include <stdio.h>
void example1();
void example2();
void example3();
void example4();
int main() {
printf("예제 1번\n");
example1();
printf("\n");
printf("예제 2번\n");
example2();
printf("\n");
printf("예제 3번\n");
example3();
printf("\n");
printf("예제 4번\n");
example4();
printf("\n");
}
void example1() {
int a = 20;
int* ptr; // 포인터 변수 선언 (자료형 *포인터변수)
ptr = &a; // ptr에 a의 주소값 저장
printf("a의 값 : %d\n", a); // 20
printf("a의 주소값 : %d\n", &a); // a의 주소값
printf("ptr에 저장된 값 : %d\n", ptr); // ptr의 값 = a의 주소값
printf("ptr가 가리키는 변수의 값 : %d\n", *ptr); // *ptr = a = 20
}
void example2() {
int a = 10;
int b = 20;
int* ptr; // 포인터 변수 선언
ptr = &a; // a의 주소값 대입
printf("ptr이 가리키는 변수에 저장된 값 : %d\n", *ptr); // *ptr = a = 10
ptr = &b; // b의 주소값 대입
printf("ptr이 가리키는 변수에 저장된 값 : %d\n", *ptr); // *ptr = b = 20
}
void example3() {
int a = 10;
int* ptr; // 포인터 변수 선언
ptr = &a; // a의 주소값 대입
printf("a의 값 : %d\n", a); // 10
*ptr = 20; // a = 20 이랑 동일
printf("a의 값 : %d\n", a); // 20
}
void example4() { // 더블포인터
int a = 10;
int* ptr; // 포인터 변수 선언
ptr = &a; // a의 주소값 대입
int** double_ptr; // 더블포인터 변수 선언 (포인터를 가리키는 포인터)
double_ptr = &ptr; // ptr의 주소값 대입
printf("a = %d\n", a); // a의 값 = 10
printf("&a = %d\n\n", &a); // a의 주소값
printf("ptr = %d\n", ptr); // ptr의 값 = a의 주소값
printf("&ptr = %d\n", &ptr); // ptr의 주소값
printf("*ptr = %d\n\n", *ptr); // *ptr = a = 10
printf("double_ptr = %d\n", double_ptr); // double_ptr의 값 = ptr의 주소값
printf("&double_ptr = %d\n", &double_ptr); // double_ptr의 주소값
printf("*double_ptr = %d\n", *double_ptr); // *double_ptr = ptr의 값 = a의 주소값
printf("**double_ptr = %d\n\n\n", **double_ptr); // **double_ptr = *(*double_ptr) = *ptr = 10
printf("%d %d %d\n", a, *ptr, **double_ptr); // 10 10 10
printf("%d %d %d\n", &a, ptr, *double_ptr); // a의 주소값 출력
printf("%d %d\n", &ptr, double_ptr); //ptr의 주소값 출력
}
'Programming Language > C' 카테고리의 다른 글
C언어 :: 포인터 문제 (2) (0) | 2021.01.16 |
---|---|
C언어 :: 포인터 정리 (2) - 배열과 포인터의 관계 (0) | 2021.01.16 |
C언어 :: 포인터 문제 (1) (0) | 2021.01.16 |
버블 정렬 (bubble sort) (0) | 2020.10.18 |
EOF (END-OF-FILE) (0) | 2020.10.18 |