C++ 15

정적 변수 & 전역 변수 차이

정적 변수와 전역 변수의 차이를 정리해보았습니다. 특징정적 변수전역 변수선언 위치함수/클래스 내부함수/클래스 외부접근 범위선언된 범위 내부프로그램 전체공유 범위동일 함수/클래스 내에서만 값 공유모든 함수/클래스 내에서만 값 공유생명 주기 프로그램 종료 시까지 유지 프로그램 종료 시까지 유지 장점데이터 은닉성 보장, 부작용 최소화값 공유와 상태 관리를 쉽게 할 수 있음단점범위 내에서만 사용 가능다른 함수에서 수정 가능하여 디버깅이 어려울 수 있음

C++ 2024.12.30

'상수 포인터'와 '포인터 상수'의 차이

const를 사용하면 상수를 만들 수 있습니다.이는 일반 변수 뿐만 아니라 포인터 변수도 마찬가지입니다. 하지만 포인터 변수에 사용하는 const는 위치에 따라'상수 포인터'와 '포인터 상수'로 나뉩니다. 1. 상수 포인터const int *ptr = &a;포인터 변수로 가리키는 값(일반 변수의 값과는 다른 취급)을 상수화.포인터 역참조로 변수의 값을 변경 시킬 수 없음.일반 변수는 변경 가능.#include using namespace std;int main(){ int a = 0; const int* ptr = &a; a = 1; //가능 *ptr = 2; //포인터 상수가 a의 주소를 가지고 역참조로 값을 변경하려 했으나 오류 cout 일반 변수 int a = 0; 이었던 것을 밑에서 const ..

C++ 2024.12.27

포인터 변수

크기포인터의 데이터 형식은 포인터 변수의 크기를 의미하는 것이 아닙니다.포인터 변수가 가리키는 데이터의 형식을 뜻합니다. 예를 들어int *pointer위의 코드에서 int는 해당 포인터 변수가 가리키는 변수의 타입. 포인터 변수의 크기64bit 프로그램 : 8byte32bit 프로그램 : 4byte  주의할 것1. 배열과 포인터배열과 포인터는 비슷하다고 생각할 수 있습니다.하지만 위에서 보았듯이 포인터는 주소를 저장하기 위한 용도이기 때문에 크기가 정해져있지만배열은 데이터 타입, 정적, 동적에 따라 크기를 다양하게 설정할 수 있습니다.  2. 변수와 배열포인터 변수를 선언하고 변수의 주소를 받기 위해 보통은 아래와 같이 선언하지만int* pointer = &variable; 배열을 받을 때는 배열의 첫..

C++ 2024.12.26

간단한 코드를 작성해 Class 개념 익히기

목적1. 헤더 파일과 코드 파일을 분리하여 작성하는 방법을 익힌다.2. Class 개념을 함께 익힌다. 코드배터리를 관리하는 코드1. 배터리의 초기값은 1002. 배터리를 사용하면 -5, 배터리를 충전하면 -7을 하여 반영. Battery.h#ifndef Battery_H_#define Battery_H_class Battery{private: int charge;public: Battery(int charge = 100) { this->charge = charge; }; int getCharge() { return charge; } int getUse(); int getCharging(); };#endif생성자로 배터리의 충전량을 100으로 초기화 해주고밑에 있는 기능을 구현할 멤버 함수를 작성했습..

C++ 2024.12.24

C++ 튜토리얼

C언어 공부는 해봤지만 C++은 처음이라차이점을 알아보는 것에 중점을 두고 공부해봤습니다. 목표1. 5개의 숫자를 입력 받아 배열에 저장하고 합과 평균을 계산해서 출력.2. 위의 코드를 수정해서 배열의 크기도 지정할 수 있게 수정.3. 합과 평균을 구하는 기능은 각각의 함수로 구현. 위의 목표를 하나씩 달성해보겠습니다.   1. 5개의 숫자를 입력 받아 배열에 저장하고 합과 평균을 계산해서 출력.#include using namespace std;int main(){ int arr[5]; int sum = 0; int avg = 0; cout > arr[i]; sum = sum + arr[i]; } avg = sum / 5; cout  알게 된 것 int sum, avg = 0;처음에는 이렇게 초기화를..

C++ 2024.12.23