1. 정적 변수 (static)- static 키워드는 지역 변수를 정적 변수(static variable)로 변환한다.- 이러한 정적 변수는 선언된 블록이 끝나더라도 값을 계속 유지한다.- 다음 예시를 보면 이해하기 쉬울 것이다.#include void func(){ int a = 0; static int b = 0; a++; b++; std::cout ===== Output =====1112 - 결과를 보면 a는 함수가 돌때마다 0으로 초기화되어 1로 고정되는 한편- b는 함수가 돌때마다 0으로 초기화되지 않고 기존값을 계승받아 1씩 증가하는 것을 볼 수 있다. 2. 상수 변수(const)- CS에서 상수란 '변하지 않는 값'을 의미한다. 즉, 원주율이나 ln2와 같은 항..
CS Study/C++
0. Intro- 지금까지의 변수에 데이터를 저장할 때 우리는 항상 같은 데이터 타입이였던 아이들만 저장을 하였다.- 이번엔 struct 즉, 구조체를 이용하여 여러가지 형식의 데이터를 하나의 매개변수로 전달하는 방법에 대해서 알아보자. 1. 구조체 (struct)- 구조체가 무엇인지 자세히 알아가보자.- 예를 들어 책에 대한 정보를 코드로 표현하고 싶다고 가정하자. std::string name;int page;std::string color;float width;float height; - 총 5개의 매개변수가 필요하게 되는데, 이것을 하나로 묶어서 book이라는 구조체를 선언해보자.(struct를 이용하여)struct Book{ std::string name; int page; st..
1. 함수(Function)- 함수란 특정 작업을 수행하는 코드 집합으로 정의 가능하다.- 다음과 같은 구성을 띄고 있다고 생각하면 된다.int func(int x, int y){} - 여기서 int는 함수의 return type, func은 함수명, ()안의 변수는 매개 변수, {}는 함수 몸체이다.1.1. 두 수를 곱하는 함수- 간단한 예시로 두 수를 곱하는 함수를 C++로 작성해보자.#include int multi(int x, int y){ int result = x * y; return result;}int main(){ int _multi = multi(2,3); std::cout 1.2. 포인터를 매개변수로!- 어떤 변수에 1을 더해주는 함수를 만들고 싶다고 생각해보자..

1. 메모리 주소(Memory address)- 포인터를 알아가기 전에 데이터가 메모리에 저장되는 구조에 대해서 알아보자.- 다음 예시는 각각 다른 데이터타입을 가진 변수를 선언한 코드이다.#include int main(){ char a = 'A'; int b = '10'; double c = '123.45';} - 해당 코드를 실행하면 메모리에서 다음과 같이 데이터가 저장이 된다. - 해당 프로그램이 동작할 땐, CPU가 주소를 통해 특정 메모리 공간에 접근하게 된다.- 변수를 선언하게 되면 자료형의 크기에 맞게 공간이 확보가 되고, 해당 공간에 데이터를 기록한다.- 데이터가 담기는 공간의 시작 메모리 주소는 실행할 때 마다 달라진다.- 이러한 시작 메모리 주소는 데이터를 접근할 때 매우 ..