본문 바로가기

C++87

C++ 기초 : 지역 변수 / 전역 변수 변수의 종류는 여러 가지 있습니다. 1. 지역 변수2. 전역 변수3. 정적 변수(static) 4. 외부 변수(extern)  변수가 할당되는 메모리 영역도 다양하죠. 1. 스택 영역2. 데이터 영역3. 읽기 전용(코드, ROM)4. 힙 영역     지역 변수는 스택 영역에 존재합니다. main 함수가 시작되면 main 함수 안에 있는 변수,main 함수에서 A 함수를 호출하면 A 함수 안에 있는 변수 등지역 변수는 함수와 함께 존재하기 때문에 스택 영역에 있으며함수가 사라지면서 같이 소멸되는 특징이 있죠. 아래와 같은 코드가 있습니다.void Test(){ int i = 0; ++i;}int main(){ Test(); Test(); .. 2024. 3. 5.
C++ 기초 : 구조체 C와 C++에서는 구조체(Struct)라는 키워드를 제공합니다.구조체는 사용자 정의 자료형을 만드는 것입니다. 문법을 알아보죠. 위 코드에서 _tagMyST 부분이 구조체(Struct)입니다.     구조체는 사용자 정의 자료형을 만드는 것이라고 하였는데,자료형은 뭘까요? 바로 데이터 타입이죠? 즉 구조체는 사용자가 임의로선언하는 데이터 타입이며 크기가 있을 겁니다.  확인해 보죠. 구조체를 만든 부분 끝에 'MYST'가 구조체의 이름입니다.사용할 때는 MYST 키워드를 자료형으로 생각하고 사용하면 됩니다. main 함수에서 MYST형 변수 ms를 선언해줬습니다. 그리고 sizeof 함수를 사용해서 변수 ms의 크기를 얻었습니다.sizeof 함수는 소괄호.. 2024. 3. 3.
C++ 기초 : 배열 int형 변수를 하나 선언하면 4Byte의 공간을 할당하죠.다른 공간을 할당하려면 다른 이름으로 다른 변수를 선언해 줘야겠죠. 그런데 같은 이름으로 여러 개의 공간을 할당할 수 있는데이를 배열이라고 합니다.    배열의 문법을 살펴봅시다.int iArray[10] = { };int형으로 배열을 선언하였습니다. 이름은 iArray이며 10개의 공간을 할당하고 있습니다.해당 공간들은 모두 연속적으로 붙어 있습니다. 각 공간마다 특정 값을 넣어서 초기화할 수도 있지만위 코드처럼 아무 값도 넣지 않으면모든 공간을 0으로 초기화한다는 의미입니다. 만약 6개만 초기화하면 나머지 4개 공간은 0으로 초기화합니다.      각 공간에 접근하려면int iArray.. 2024. 3. 2.
C++ 기초 : 재귀 함수 (2) 반복문으로 구현한 Factorial 함수를 재귀 (Recursion) 함수를 이용해서 구현해 보겠습니다.  7!은 7 * 6!과 같습니다.10!은 10 * 9!과 같죠.규칙성이 보이시나요? 수식으로 써 보면 n! = n * (n-1)! 이죠. 이러한 규칙성을 적용해서 구현하면 될 것입니다.  Factorial_Recursion 이라는 이름으로Factorial 계산을 위한 재귀(Recursion) 함수를 만들었습니다. Factorial_Recursion 함수를 보면if 문이 있는데 재귀 함수를 탈출하기 위해서 존재합니다.변수 _iNum의 값으로 1이 들어오면 더 이상 계산할 필요 없이 1을 반환하고 재귀 함수를 탈출하면 됩니다.1!은 계산해봤자 1이니까요.  i.. 2024. 3. 1.
C++ 기초 : 재귀 함수 (1) 함수는 스택 방식, 즉 선입후출(후입선출) 방식으로 작동한다고 했습니다.이러한 함수는 스택 메모리 영역에서 작동하죠. 이 과정을 디버깅을 통해 눈으로 확인할 수 있습니다.  Factorial 함수 코드를 디버깅해서 확인해 보죠. 19번째 줄에 중단점을 찍고 디버깅을 시작했습니다. 일단 main 함수가 호출되면서 사용할 변수들(iValue, iValue1, iValue2)을 할당했습니다.'로컬'을 보면 아직 초기화까지 진행되지 않아 각 변수들에는 쓰레기값이 들어가 있네요. 오른쪽 하단에 "호출 스택"이라고 있습니다.현재 어떤 함수가 호출되어 쌓여 있는지 보여주는 곳입니다.현재는 main 함수만 있습니다.  이제 F11을 눌러서 한 단계 더 진행하겠습니다. 화살표가 .. 2024. 2. 27.
C++ 기초 : 함수 (3) Factorial(팩토리얼)이라고 아시나요? Factorial은 그 수보다 작거나 같은, 모든 양의 정수의 곱입니다. 양의 정수 뒤에 '!'를 붙여 표현하죠. 예를 들어 4!은4 * 3 * 2 * 1 = 24 입니다.  이를 코드로 표현해 보겠습니다.int main(){ //4! ( Factorial ) int iValue = 4 * 3 * 2 * 1; return 0;} 변수 iValue에는 4!을 한 값인 24가 들어갈 겁니다.          그런데 만약 10!한 값을 iValue에 넣고 싶다고 했을 때일일이 10부터 1까지 입력하는 건 번거롭습니다.  팩토리얼 계산을 for 문을 통해 조금 더 편하게 해볼까요?int m.. 2024. 2. 26.