2024/10 3

구조체와 공용체의 차이

구조체와 공용체는 C와 C++에서 제공되는 사용자 정의 데이터 타입이다. 둘 다 여러 개의 멤버 변수를 가질 수 있지만, 메모리 할당 방식과 데이터 저장 방식에 차이가 있다. 메모리 할당 방식구조체는 각 멤버 변수가 별도의 메모리 공간을 차지하므로 구조체의 크기는 모든 멤버 변수가 차지하는 메모리 공간의 합과 같다.#include typedef struct student { int age; double weight; char gender;} Student;int main() { Student je; printf("%p %p %p\n", &je.age, &je.weight, &je.gender); // 0x16fdb7430 0x16fdb7438 0x16fdb7440 prin..

C++ 2024.10.13

[C++] 나눗셈에서 소수점 포함하기

C++에서 정수끼리의 나눗셈에서 소수점이 버려지고 정수 값만 리턴되는 현상이 나타난다.#include using namespace std;int main() { int dividend = 10; int divisor = 3; double result = dividend / divisor; cout  10 / 3의 결과를 10.3333... 으로 기대하지만 실제 출력은 3으로 나타난다. 소수점이 버려지는 이유는 C++의 데이터 타입과 관련이 있다. C++에서 데이터 타입은 정수형과 실수형으로 나뉘며, 각 타입은 서로 다른 방식으로 연산을 처리한다.정수형 데이터 타입: int, short, long, long long, ...실수형 데이터 타입: float, double, ...정수형 피연산자들끼리의 나눗셈..

C++ 2024.10.08

[C++] N차원 배열 선언 방법

C++ 알고리즘 풀이 시, 2차원 배열 선언 방법과 각각의 특징에 대해 설명해보려 한다. 실행 중 배열 크기를 결정할 수 있는 동적 벡터 방식과 컴파일 시 크기를 고정하는 정적 배열 방식이 있다.vector 이용// R*C 크기의 2차원 vectorvector > board(R, vector(C));// a*b*c 크기의 3차원 vectorvector > > board(a, vector>(b, vector(c))); vector는 C++의 STL에서 제공하는 동적 배열로, 위 방법은 배열의 크기를 동적으로 설정하여 2차원 벡터를 생성하는 방식이다. 배열의 크기를 프로그램이 실행될 때 결정할 수 있기 때문에 유연성이 높다. 불필요한 초과 할당이 발생하지 않아 메모리 효율성이 좋다. 하지만 속도 측면에서 v..

C++ 2024.10.08