Search

포인터란?

Created
2021/11/18 08:53
Tags

포인터의 기본 개념

포인터의 역할
임의의 메모리에 접근하여 값을 저장하거나 읽는 역할
포인터 변수?
메모리 주소를 저장 하는 변수
일반 변수와 포인터 변수의 공통점과 차이점
Search
Name
Tags
Column
값 저장
상수 저장
값 저장
메모리 주소 저장
COUNT3

'*' 의 역할

(간접) 참조 연산자 ' * ' 의 역할과 의미
선언된 변수가 포인터 변수임을 나타내는 역할
ex ) int pVar == int pVar;
포인터 변수에 저장된 메모리 주소로 접근한 메모리 영역의 데이터(값)를 의미
참조를 접근으로 이해하자.

포인터 선언

선언 형식
데이터형 *변수명;
예) int *pPtr;
다수의 포인터 변수 선언 형식
int *pPtr1, *pPtr2, *pPtr3;

포인터 데이터형

포인터 데이터형에 따른 의미
Search
구분
의미
문자형 메모리 주소를 저장
정수형 메모리 주소를 저장
실수형 메모리 주소를 저장
COUNT3
모두 4 byte(32bit환경) 크기를 가진다.

일반 변수의 선언과 그 의미

int nVar; → nVar; → 0x8000C7A0 : 4 byte
nVar = 3;
메모리 주소 0x8000C7A0 에 값 3이 저장되어 있고 크기는 4 byte 이다.

포인터 변수의 선언과 의미

int nVar = 7;
int *pPtr = &nVar;
포인터 pPtr이 가지는 메모리 주소에 있는 값은 nVar의 주소를 가지고 있다.
&, Ampersnd의 의미
주소 연산자, 변수의 메모리 주소

포인터 변수 실습

#include <stdio.h> int main(void){ int var1 = 10; int *ptr = &var1; *ptr = 12; printf("%p %p\n", &var1, ptr); printf("%d %d\n", var1, *ptr); return 0; }
C
복사

포인터 변수의 사용 예

int nVar = 7;
int *pPtr = &nVar;
*pPtr = 12;