Search

포인터

포인터의 개념
변수의 메모리 주소를 담는 타입이 바로 포인터이다.
포인터는 메모리 동적할당, 데이터를 복사하지 않고 함수 매개변수로 사용, 클래스 및 구조체를 연결할 때 사용된다.
class Node{ public: int data; Node* next; };
C++
복사
다음 코드를 보면 int* a라는 &i라는 i의 주소를 담는 포인터를 정의한 것을 볼 수 있다.
<타입>* 형태로 포인터를 정의한다.
예를 들어 string타입 변수의 메모리 주소를 담을 때에는 string* 하고 선언.
string s ="kundo"; int main(){ i = 0; int* a = &i; cout << a << '\n'; string* b = &s; cout << b << '\n'; return 0; }
C++
복사

역참조 연산자

*은 사용하는 위치에 의해 다양한 용도로 사용된다.
곱셈 연산, 포인터 타입의 선언, 역참조 이다.
int main() { string a = "abcda"; string* b = &a; cout << b << '\n'; cout << *b << '\n'; return 0; }
C++
복사

array to pointer decay

배열의 이름을 주소값으로 쓸 수 있다.