라벨이 포인터인 게시물 표시

[C++ ] 2차원 포인터 정리

이미지
아래 링크 1차원 포인터 정리 링크. 1차원 포인터 정리 ----------------------------------------------------------------------------------------- 2차원 포인터 선언 방법 *ptr; **ptr2; ***ptr3;  ****ptr4; * 하나 씩붙을 때 마다 각각 1, 2, 3, 4차 포인터 라고 부른다. *을 붙여 100차원 포인터 그 이상 만들 수있다.  하지만, 다차원 포인터를 남발하면 너무 복잡해 진다. 실무에서는 최대 2차원 포인터를 사용한다.   ----------------------------------------------------------------------------------------- 예제 #include <iostream> using namespace std; void main() { int num = 5; int* ptr = NULL; int** ptr2 = NULL; ptr = &num; // ptr->num ptr2 = &ptr; // ptr2 -> ptr cout << "num 주소: " << &num << endl; //num 주소 출력 cout << "ptr 주소: " << &ptr << endl; //ptr 주소 출력 cout << "ptr2 주소: " << &ptr2 << endl;  //ptr2 주소 출력 cout << endl; cout << "ptr 가리키는 주소: " << ptr << endl;     //ptr이 가리키는 주소 출력 cout << "ptr2 가리키는 주소: " <...

[C++ ] 1차원 포인터 정리

이미지
C++의 꽃은 역시나 포인터. C++ 에서 코딩을 더 편하게 하라고 만든 문법이다. 아직 익숙하지 않아서 어렵게 느껴질 수 있으나, 포기하지 않고 하다보면 구구단 처럼 쉽게 느껴진다. 포인터란? int가 정수형을 반환, double이 실수를 반환 한다. 이처럼, 포인터는 어떤 변수의 주소를 저장 해 뒀다가 포인터가 저장해둔 주소가 가지고 있는 변수 값을 반환한다. 포인터에서 사용하는 연산자 주소 연산자(&) :  변수 앞에 &을 붙여 변수의 주소를 반환. 참조 연산자(*) :  포인터의 앞에 *을 붙여 포인터가 가리키는 주소에 저장된 값을 반환. 메모리 주소 할당 개념 우선, 우리가 프로그램을 실행하면 변수마다 메모리가 할당된다. 메모리가 할당 되면 컴퓨터를 위해서 주소들이 배정된다. 주소가 할당되는 이유는 컴퓨터가 주소를 찾아서 변수값을 가져온다. 그러면 여기서 스택같은 자료구조도 연관되어 있다. 구글링해서 찾아보자. 메모리 주소는 프로그램 재시작시 매번 바뀐다. 아래예제를 두 번 실행 시켜보자. #include <iostream> using namespace std; void main() { int num = 100;   // 변수 선언 int *ptr; // 포인터 선언 cout << "num 주소: " << &num << endl; cout << "ptr 주소: " << &ptr << endl; } 첫번째 실행 두번째 실행 위처럼 메모리주소 할당이 매번 바뀐다.  &연산자를 사용하여 주소를 확인 할 수있다.  변수든 함수든 프러그램 시작 시 메모리 주소를 할당한다는 것을 알고있으면 된다. 자세한 부분은  C++  메모리 주소를 구글링 해서 찾아볼것. 예제 #include <iostream> using namespace std; void mai...