문서 보기이전 판Export Page to HTML/PDF맨 위로 이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. ======C++ 스터디 #9: 포인터(1)====== | 시간 | 2021년 7월 6일 화요일 20:00 ~ 22:00 | | 장소 | ZOOM | | 참가자 | - | {{youtube>tXR-98A-pV0?medium}} =====1. 포인터===== 포인터는 주소를 가리키는 변수를 뜻합니다.\\ 포인터는 다음과 같은 형식으로 선언됩니다.\\ 자료형* 포인터변수이름;\\ Ex)\\ int* p;\\ double* p;\\ char* p;\\ short* p;\\ =====2. 주소 연산자 &===== & 연산자를 이용하여 변수의 주소를 포인터에 저장할 수 있습니다.\\ p = &number;\\ 위의 코드는 number라는 변수의 주소를 계산하여 포인터 p에 저장한다는 것을 의미합니다.\\ 간단한 예제를 작성해 보면 다음과 같습니다. <sxh cpp> int number = 10; // 변수 정의 int* p; // 포인터 정의 p = &number; // 변수 number의 주소를 계산하여 포인터 p에 저장 </sxh> {{:activity:public:2021:cpp:그림1.jpg?400|}} \\ =====3. 간접 참조 연산자 *===== 간접 참조 연산자 *를 통해 포인터가 가리키는 메모리 공간의 값을 읽어오거나 변경할 수 있습니다.\\ 포인터 p가 가리키는 메모리 공간의 내용을 가져오려면 ***p**하면 됩니다. 이것을 포인터를 통하여 간접 참조한다고 합니다.\\ {{:activity:public:2021:cpp:그림2.jpg?400|}} =====4. 이중 포인터===== 이중 포인터는 포인터의 포인터입니다. 즉 포인터의 메모리 주소를 저장하는 포인터를 의미합니다.\\ 포인터를 선언할 때 *를 두 번 사용하면 이중 포인터를 선언하게 됩니다.\\ 간단한 예제를 작성해 보면 다음과 같습니다.\\ <sxh cpp> #include <iostream> using namespace std; int main() { int* numPtr1; // 단일 포인터 선언 int** numPtr2; // 이중 포인터 선언 int num1 = 10; numPtr1 = &num1; // num1의 메모리 주소 저장 numPtr2 = &numPtr1; // numPtr1의 메모리 주소 저장 cout << **numPtr2 << endl; // 포인터를 두 번 역참조하여 num1의 메모리 주소를 출력 return 0; } </sxh> \\ =====5. 예제===== ====5.1==== 다음 소스 코드를 완성하여 10과 20이 각 줄에 출력되게 만드세요.\\ {{:activity:public:2021:cpp:그림3.png?400|}}\\ {{:activity:public:2021:cpp:그림4.png?400|}} \\ 답안 예시 \\ <sxh cpp> #include <iostream> using namespace std; int main() { int* numPtr; int num1 = 10; int num2 = 20; numPtr = &num1; cout << *numPtr << endl; numPtr = &num2; cout << *numPtr << endl; return 0; } </sxh> \\ ====5.2==== 표준 입력으로 정수가 입력됩니다. 다음 소스 코드를 완성하여 입력된 정수가 출력되게 만드세요.\\ {{:activity:public:2021:cpp:그림5.png?400|}}\\ **입력: 10**\\ **출력: 10**\\ \\ 답안 예시 \\ <sxh cpp> #include <iostream> using namespace std; int main() { int* numPtr1; int** numPtr2; int num1; cin >> num1; numPtr1 = &num1; numPtr2 = &numPtr1; cout << **numPtr2 << endl; return 0; } </sxh> activity/public/2021/cpp/210706.txt 마지막으로 수정됨: 4년 전저자 Algern0n 로그인