반응형
포인터(Pointer): 메모리의 주소(Address)를 가리키는 변수이다.
// 포인터는 아래와 같이 다양하게 표현할 수 있다.
int *pa;
int* pa;
int * pa;
int pa[5];
연산자: &(주소 연산자, 참조 연산자, 직접 연산자), *(간접 연산자, 역참조 연산자)
#include<stdio.h>
int main(){
int x = 10;
int *p = &x; // 포인터 p(*p)는 변수 x의 주소값을 가리킨다.
// 만약 p = NULL이면, 주소값은 0이고 아무것도 가리키지 않는다.
// int : 포인터가 가리키는 변수의 데이터형
// * : 포인터 수식어
// p : 포인터 변수명
printf("x : %d\n", x);
printf("*p : %d\n\n", *p); // *p는 포인터가 가리키는 주소 안의 저장된 값을 출력한다.
printf("x 주소 : %d\n", &x); // &x는 주소값을 출력한다.
printf("p : %d\n", p); // 변수 p에는 주소값이 저장되어 있다.
return 0;
}
#include<stdio.h>
int main(){
int x = 100, y = 200;
int *p;
p = &x; // pointer 변수 p에 x의 주소값을 저장한다.
printf("*p = %d\n", *p);
printf("p = %d\n", p);
printf("x = %d\n\n", x);
x += 30;
printf("*p = %d\n", *p);
printf("p = %d\n", p);
printf("x = %d\n\n", x);
*p += 30; // pointer p가 가리키는 주소의 저장된 값에 '+30' 해준다.
printf("*p = %d\n", *p);
printf("p = %d\n", p);
printf("x = %d\n\n", x);
p = &y;
printf("*p = %d\n", *p);
printf("p = %d\n", p);
printf("x = %d\n\n", x);
return 0;
}
반응형
'C' 카테고리의 다른 글
[C언어] 실습: 국어, 영어, 수학 점수를 입력받은 후, 총점, 평균 구하기 (Array) (0) | 2021.02.15 |
---|---|
[C언어] 배열(Array)과 포인터(Pointer) (0) | 2021.02.14 |
[C언어] 실습: 암호 입력 프로그램 구현하기 (5) | 2021.02.12 |
[C언어] 문자열 함수(strlen, strcpy, strcmp) (0) | 2021.02.11 |
[C언어] 실습: 다섯 개의 정수를 입력받은 후, 총합 계산하기 (0) | 2021.02.10 |