C++ 기초

코딩 기초 16편 _ C++ sizeof 연산자와 포인터 연산자(point operator)에 대해서

모르는게 없는 지식인 2023. 4. 17. 23:53
반응형

안녕하세요?

지식아일랜드의 모르는게 없는 지식인 입니다.

오늘은 C++ 코딩의 기타 연산자 중 sizeof 연산자와 포인터 연산자에 대해 설명드리겠습니다.

 

 

 

 

sizeof 연산자

아래는 sizeof 연산자를 이해하기 위한 C++ 코드 예시 입니다.

#include <iostream>
using namespace std;

int main() {
     int intArray[5];
     double doubleVar;
     char charVar;

     cout << "Size of intArray: " << sizeof(intArray) << " bytes" << endl;
     cout << "Size of doubleVar: " << sizeof(doubleVar) << " bytes" << endl;
     cout << "Size of charVar: " << sizeof(charVar) << " bytes" << endl;

     return 0;
}

 

위 코드에서는 세 개의 변수를 선언하고, sizeof 연산자를 이용하여 각 변수의 크기를 출력하고 있습니다.

intArray는 5개의 int형 원소를 가지는 배열이므로, sizeof(intArray)는 5*sizeof(int)와 같아서, 출력 결과는 20이 됩니다.

doubleVar와 charVar는 각각 double과 char형 변수이므로, sizeof 연산자를 이용하여 각각 8과 1이 출력됩니다.

 

sizeof 연산자는 변수나 데이터 타입의 크기를 반환하는 연산자입니다.

이 연산자는 컴파일 시간에 평가되며, 주어진 변수나 데이터 타입의 크기를 반환합니다.

따라서, sizeof 연산자를 이용하여 메모리 사용량을 계산하거나, 배열의 크기를 계산하는 등의 용도로 사용될 수 있습니다.

 

위 코드를 실행하면 아래와 같은 출력 결과를 얻을 수 있습니다.

Size of intArray: 20 bytes
Size of doubleVar: 8 bytes
Size of charVar: 1 bytes

 

위 예제에서는 sizeof 연산자가 어떻게 사용되는지와 각 변수의 크기가 어떻게 계산되는지를 보여주고 있습니다.

따라서, C++에서 sizeof 연산자를 이용하여 변수나 데이터 타입의 크기를 계산할 때 유용하게 사용될 수 있습니다.

 

 

포인터 연산자(pointer operator)

포인터 연산자는 메모리 주소에 대한 작업을 수행하는 연산자로, 주로 동적 할당된 메모리를 다룰 때 사용됩니다.

아래 코드는 포인터 변수를 생성하고, 그 변수를 통해 메모리 주소를 출력하는 간단한 예시 코드 입니다.

 

#include <isotream>

using namespace std;

int main() {
     int x = 10;
     int* ptr = &x;

     cout << "x의 값: " << x << endl;
     cout << "x의 주소: " << &x << endl;
     cout << "ptr이 가리키는 주소: " << ptr << endl;
     cout << "ptr이 가리키는 값: " << *ptr << endl;

return 0;
}

 

위 코드에서는 먼저 'int'형 변수 'x'를 생성하고, 이 변수의 값을 '10'으로 초기화 합니다.

그리고 'int'형 포인터 변수 'ptr'을 생성하고, '&x'를 이용해 'x'의 메모리 주소를 'ptr'에 저장합니다.

 

그 후에는 'cout'을 이용해 'x'의 값, 주소 'ptr'이 가리키는 주소, 'ptr'이 가리키는 값 등을 출력합니다.

이 떄 '*'연산자를 이용해 포인터 변수가 가리키는 값을 가져올 수 있습니다.

 

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

x의 값: 10
x의 주소: 0x7ffd85d1f51c
ptr이 가리키는 주소: 0x7ffd85d1f51c
ptr이 가리키는 값: 10

 

위 결과에서는 'x'의 값이 '10'이고, 'x'의 메모리 주소는 '0x7ffd851f51c' 임을 확인할 수 있습니다.

또한, 'ptr'이 가리키는 값은 'x'의 값인 '10'이라는 것을 알 수 있습니다.

이와 같이 포인터 연산자를 이용하면 동적 할당된 메모리를 효율적으로 다룰 수  있습니다.

 

 

 

 

오늘은 C++ 코딩의 기타 연산자에 대해 설명드렸는데요

어떠셨나요? 이해가 잘 되셨나요? ㅎㅎ

오늘 배운 것처럼 siozeof 연산자와 포인터 연산자를 잘 이용해 C++ 프로그래밍을 하시길 바랍니다.

반응형