Search
Duplicate

포인터란?

Created
2021/11/18 08:53
Tags

포인터의 기본 개념

포인터의 역할
임의의 메모리에 접근하여 값을 저장하거나 읽는 역할
포인터 변수?
메모리 주소를 저장 하는 변수
일반 변수와 포인터 변수의 공통점과 차이점
Default view
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;