🤔 C++ 언어에서 지원하는 C언어의 문법
이번 포스팅에서는 C++언어에서 지원하는 C언어의 문법에 대해 배워보겠습니다.
중간고사를 대비하여 정리한 내용이기 때문에 내용이 매우 부실할 수 있습니다.
기회가 된다면 C++언어에 대해 제대로 알아보는 시간을 갖도록 하겠습니다.
해당 포스팅은 장진수 교수님의 객체지향설계 과목을 수강하며 작성한 내용임을 알립니다.
상대적으로 쉬운 for문, while문, if-else문, switch문은 생략하도록 하겠습니다.
🔎 포인터(Pointer)
지난 학기 저를 가장 애먹였던 포인터입니다.
포인터는 객체의 주소를 저장하는 데이터 타입입니다.
아래와 같이 사용할 수 있습니다.
포인터는 아래와 같이 update 될 수 있습니다.
✍️ 배열과 포인터
다음은 배열과 포인터입니다.
배열은 포인터로도 나타낼 수 있습니다.
배열의 첫 번째 인덱스의 주소는 해당 배열의 시작주소를 가리킵니다.
마찬가지로 포인터가 해당 배열의 주소값을 가지고 온다면 동일하게 배열의 시작주소를 가리킬 수 있습니다.
배열과 포인터는 아래의 코드와 같이 증감연산과 대입연산이 불가능 한 경우가 있습니다.
조금 이해가 잘 가지 않는 포인터를 통해 배열을 나타내는 방법도 있었습니다.
혹시 아시는 분은 도와주세요...
아래의 코드인데 정확하게 이해를 잘 하지 못해 외우기로 했습니다.
마지막으로 2차원 배열을 포인터를 통해 나타내는 방법입니다.
✍️ 포인터의 포인터
포인터의 포인터는 포인터의 주소를 저장하고 있는 포인터입니다.
아래의 코드를 살펴보면 ppval이 pval의 주소값을 저장하고 있는 것을 알 수 있습니다.
✍️ 포인터 배열
말 그대로 포인터값을 배열에 저장하는 것을 말합니다.
배열 포인터와 헷갈리지 않게 주의하시기를 바랍니다.
🔎 Call by value & Call by pointer
Call by value와 Call by pointer를 비교해보겠습니다.
pointer를 통해 값을 변경하면 해당 주소를 통해 값을 변경하기 때문에 실제 값을 변경할 수 있습니다.
'언어 > C++' 카테고리의 다른 글
[C++] 동적 메모리 할당 (0) | 2022.10.27 |
---|---|
[C++] 레퍼런스(Reference) (0) | 2022.10.26 |
[C++] Namespace (0) | 2022.10.26 |
[C++] 생성자/소멸자 (0) | 2022.10.26 |
[C++] 클래스, 함수 오버로딩 (0) | 2022.10.26 |