42SEOUL

[C] 포인터

daykim 2021. 10. 12. 14:36

포인터

메모리의 주소값을 저장하는 변수

포인터 선언
type *pointer_name

포인터 선언 후 참조연산자를 사용하기 전에 포인터는 반드시 먼저 초기화되어야 한다.

그렇지 않으면 의도하지 안ㅍ은 메모리의 값을 변경하게 된다.

 

포인터 연산자

  • &(주소 연산자) : 변수의 이름 앞에 사용하여 해당 변수의 주소값 반환
  • *(참조 연산자) : 포인터의 이름이나 주소 앞에 사용하여, 포인터가 가리키는 주소에 저장된 값 반환

 

다중 포인터

포인터를 가리키는 포인터를 다중 포인터라고 한다

*의 개수가 늘어난다.

  • **ptr : 이중 포인터
  • ***ptr : 삼중 포인터

 

포인터 연산

ex) *(ptr + 1)

1을 더했지만 해당 포인터의 자료형에 해당하는 byte가 곱해져 더해지는 것이다.

메모리를 가리키므로 int 형이라면 1*4 되어 더해지는 것이다.

즉 자료형의 크기만큼 더하거나 뺀다.

 

배열

배열명은 배열의 시작 주소다.

배열명이 일종의 포인터인 것이다.

 

포인터 함수

함수도 포인터로 가리킬 수 있다.

 

 

 

참고 URL

http://tcpschool.com/c/c_pointer_intro

'42SEOUL' 카테고리의 다른 글

[C] 전처리기, main()  (0) 2021.10.26
[C] str 함수  (0) 2021.10.12
[C] extern  (0) 2021.10.09
[Linux / shell] 명령어2  (0) 2021.10.08
[Linux / Shell] 명령어1  (0) 2021.10.06