프로그래밍/C++ | 2014. 7. 10. 00:16
메모리에는 위치를 구분하기 위해 0번지부터 시작해서 일련번호가 붙여져 있는데 이것을 주소(어드레스)라고 한다.
주소는 정수 형태이며 단위는 바이트이다. 컴퓨터가 데이터를 처리하려면 먼저 데이터를 메모리(램)으로 옮겨야한다.
포인터란?
컴퓨터의 메모리 번지(address)로, 데이터가 어디에 저장되어 있는지를 알려준다. C++에서는 이 포인터(변수의 주소)를 직접 사용할 수 있도록 포인터 연산자(&)를 제공한다.
& - 주소
* - 값
포인터 변수?
주소만을 저장한다. 포인터 변수는 선언할 때 반드시 * 기호를 덧붙여야 한다. 포인터 변수를 단독적으로 p라고 사용하는 것은 포인터값(주소)를 의미하지만, 포인터 변수에 *를 덧붙인 *p는 더 이상 주소가 아니라 해당 주소에 저장된 값을 의미한다.
그래서 p에는 변수 a의 주소가 저장되어 있으므로 *p는 변수 a의 값을 출력한다.
대입 연산자로 값을 대입할 경우 대입 연산자 오른쪽과 왼쪽에 오는 자료형이 같아야 한다.
매개변수의 전달?
함수에 사용될 데이터를 보내는 방법이다.
전달하는 방법 3가지
1. 값에 의한 전달 방식( Call by Value)
2. 주소에 의한 전달 방식( Call by Address)
3. 참조에 의한 전달 방식( Call by Reference)
1. 값에 의한 전달 방식( Call by Value)
2. 주소에 의한 전달 방식( Call by Address)
[C++] explicit에 대한 이야기 (0) | 2018.01.02 |
---|---|
[C++] 스택(Stack), 선형큐(Queue) 구현하기 (0) | 2015.04.26 |
[C++] 선행처리자에 대한 이야기( 매크로 함수 #define, const 상수, 인라인 함수 inline) (0) | 2014.07.10 |
[C++] 기억클래스에 대한 이야기(자동변수 auto, 외부변수 extern , 정적변수 static, 레지스터 변수 register) (0) | 2014.07.10 |
[C++] 클래스의 설계 (0) | 2014.07.09 |
Recent Comments