Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- JavaScript
- 영화
- package
- Sync
- Close
- Callback
- 리뷰
- range
- c++
- Python
- GO 언어
- http
- channel
- windows
- bitcoin
- FOR
- write
- 책
- Golang
- File
- json
- Linux
- go언어
- API
- go
- tcp
- window
- mutex
- C
- install
Archives
- Today
- Total
Code Habit
포인터의 개념 본문
데이터가 저장된 메모리의 시작주소를 주소값이라 하고 이를 가리키는 것을 포인터라고 한다.
int n = 1;
int* pn = &n;
포인터는 아래 주소 연산자(&)와 참조 연산자(*)로 사용할 수 있다.
- 주소 연산자(&) : 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다.
- 참조 연산자(*) : 포인터의 이름이나 주소 앞에 사용하여, 포인터가 가리키는 주소에 저장된 값을 반환한다.
문자열이나 배열에서 사용되는 변수명은 시작주소를 가리키는 포인터이다.
char sz[100] = {"string"}; // sz는 문자열 "string"의 시작주소
int nArray[20]; // nArray는 배열의 시작주소
포인터 변수는 메모리에서 변수의 위치를 나타내는 주소를 다루는 변수이므로, 그 크기는 일반적으로 CPU에 따라 결정된다. 보통 32비트 CPU에서는 4byte, 64비트 CPU에서는 8byte의 크기를 갖는다.
포인터는 코드의 복잡성을 높일 수 있지만, 메모리에 직접 접근하여 다루기 때문에 프로그램의 성능을 최적화 하는데 이점이 있다.