코딩 기초 16편 _ C++ sizeof 연산자와 포인터 연산자(point operator)에 대해서
안녕하세요?
지식아일랜드의 모르는게 없는 지식인 입니다.
오늘은 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++ 프로그래밍을 하시길 바랍니다.