언어/C++

[C++] C++언어에서 지원하는 C언어의 문법

이태홍 2022. 10. 26. 16:28

🤔 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를 통해 값을 변경하면 해당 주소를 통해 값을 변경하기 때문에 실제 값을 변경할 수 있습니다.