#포인터와 참조(reference)
Programming 2017. 11. 10. 20:40포인터 사용의 이유
1. function(int* x) { *x = 5; }
2. function(int x) { x = 5; }
가 있고,
int y;
function(y)
return y;
로 함수를 호출 할 때, 1번과 같이 포인터를 사용한 경우의 return y의 결과는 5로 바뀌지만, 2의 경우는 그렇지 않다. 2에서 결과를 5로 바꾸고 싶다면,
function(int x) { x=5; return 5; } (x=5;는 생략 가능하다.)
y = function(y)
처럼 작성해야 한다.
이처럼 포인터는 함수를 사용하여 데이터를 조작할 때 유용하다. 특히나 배열의 경우에는 iterate에 따른 데이터 변경 시에 추가적인 메모리에 접근하지 않고도 조작이 가능하다.
참조 대표적인 특징
참조는 포인터와 비슷하긴 하지만, null 포인트를 허용하지 않을 뿐만 아니라, 포인터 보다 부작용(side-effect) 효과가 크다. 예를 들어,
class &A=1;
class &B=2;
class &C=A;
처럼 작성된 클래스가 실행된 후, C에 B를 할당하는 C = B 라는 코드를 작성하고 실행하면, A에도 B가 할당된다. 포인터로 선언되었다면 C = B 코드가 실행되어도 C와 B만 같을 뿐, A는 A일 뿐이다.
'Programming' 카테고리의 다른 글
# Open SSL (0) | 2018.01.03 |
---|---|
#Qt Desktop Application 배포하기 (0) | 2017.11.17 |
# 힙(heap)과 다익스트라(dijkstra) 알고리즘 (0) | 2017.11.10 |
#패러티 비트(Parity Bit)와 해밍 코드(Hamming Code) (0) | 2017.11.07 |
#서브넷팅(Subneting) (0) | 2017.11.02 |