C++ 120

[강의] 10월 11일 수업정리

이번 강의는 오버로딩과 디폴트 인수에 대한 내용이다.  1. 함수 오버로딩 정의 - 같은 이름을 가진 함수를 여러 개 정의할 수 있으며 각 함수는 서로 다른 타입을 가지는 매개변수로 정의해야 한다.          즉, 매개변수가 다르며 이름이 동일한 함수이다. 예시)#include int add(int n1, int n2);float add(float f1, float f2);int main(){ printf("%d\n", add(1, 2)); printf("%f\n", add(1.f, 2.f));}int add(int n1, int n2){ return n1 + n2;}float add(float f1, float f2){ return f1 + f2;}함수 오버로딩은 위에 설명과 같이 동일한 이름의 ..

C++ 2024.10.14

[강의] 10월 10일 수업정리

Return과 Bool이라는 자료형에 대한 수업을 진행하였다.Return의 경우 7일 날 예습했던 거에 수정을 하여 추가하였다. Bool 자료형1. 정의bool 자료형은 Boolean 자료형이라고 하며, 1과 0의 값만 가질 수 있다.키워드로는 true와 false를 사용하며 true는 1, false는 0에 대응한다.즉, bool 변수에 숫자를 저장하면 0 이외의 값은 true(1)로 변환되고, 0은 false(0)로 유지된다.bool은 참(True) 또는 거짓(False) 값만을 나타내기 위해 사용되는 전문적인 자료형입니다. 2. bool은 언제 유용하게 사용될까?bool 자료형은 주로 예외처리에 유용하게 사용하게 된다. 올바른 값이 입력되면 정상적인 처리 결과가 반환되고, 잘못된 값이 입력되면 이를..

C++ 2024.10.11

[강의] 10월 4일 수업정리

오늘은 프로토타입 만들기에 대한 연습을 하였다.  문제 1: 세 개의 int형 숫자의 총합을 구하는 함수 void sumNumber(int nData1, int nData2, int nData3, int* pResult);  문제 2: int형 숫자를 입력받아 약수의 개수를 구하는 함수 void measureCount(int nData, int* pMeasureCount); 문제 3: 두 개의 int형 데이터를 교환하는 함수 void swapNumber(int nData1, int nData2, int* pData1, int* pData2); 문제 4: float형 삼각형의 세 변 길이로 넓이를 구하는 함수 void triangleArea(float fData1, float fData2, float fD..

C++ 2024.10.05

[강의] 10월 2일 수업정리

함수에서 배열을 어떻게 사용하는지에 대한 수업을 들었다. #include void func(int arData[3]);int main(){ int arMain[3]{ 3,2,1 }; func(arMain);}void func(int arData[3]){ for (int i = 0; i 코드 요약 :이 코드는 arData[3] 배열을 함수 인자로 선언하고, main 함수에서 arMain[3] 배열을 선언하여 func에 전달하여 출력하는 코드이지만 이 코드에는 중요한 문제점이 존재한다.문제점 :배열은 함수에 인자로 전달될 때 값의 호출 (call by value) 가 아닌 배열의 첫 번째 요소의 주소가 전달이 되게 된다.컴퓨터는 배열을 통째로 복사를 하게 되면 과부화가 걸리는 것을 인지하고 ..

C++ 2024.10.03

[강의] 10월 1일 수업정리

함수와 const의 연관성과 간단하게 함수에서의 배열에 대한 수업을 진행하였다. Const#include int main(){ const int* p{}; *p = 0; p = 0;} 1. *p = 0; p가 가리키는 값을 변경하려고 시도하는 것.const int *p의 경우 상수를 가리키는 포인터를 의미하는 것이므로, p(포인터)가 가리키는 메모리 위치에 저장된 값을 변경하는 것은 금지되기에 컴파일 오류가 일어나게 된다.2. p = 0;이 줄은 포인터 p 자체의 값을 변경하는 것이므로 즉, 포인터 p가 다른 주소를 가리키도록 설정const int *p에서 p는 값이 상수인 것이지 포인터 자체는 상수가 아니다. 그렇기에 포인터 p가 가리키는 위치를 변경하는 것은 허용되기에 문법적으로 올바르다. 요약 : ..

C++ 2024.10.01

[강의] 9월 27일 수업정리

어제 배웠던 포인터와 함수의 기본에 대한 수업을 들었다.포인터의 경우 26일 수업정리에 더 추가를 해보겠다. 함수 (Function)함수는 특정 기능을 수행하도록 작성된 코드의 묶음이다.함수의 가장 큰 장점은 코드의 재사용성과 가독성을 높여준다는 점이 있다.함수의 기본 문법함수는 함수명 뒤에 ()가 붙어 있으면 함수라고 인식을 하게 된다.일반적인 함수의 문법은 다음과 같다.리턴타입 함수명 (인수 1, 인수 2, ..... ); 함수 예시)#include void function(int nData);int main(){}void function(int nData){} 위 예시에서는 main 함수와 function 함수를 따로 정의하여 사용하는 구조를 보여준다.함수의 핵심: 교류 방법함수의 내용물보다 중요한..

C++ 2024.09.27

[강의] 9월 26일 수업정리

오늘은 배열과 포인터의 관계에 대한 수업을 했다. 일차원 배열과 포인터#include int main(){ int arData[3]{ 3,2,1 }; int* p{}; p = &arData[0]; printf("%d\n", *p);}간단한 예시를 들어보자현재 포인터 p에 arData [0]의 주소값이 들어가 있기에 출력을 하면 3이라는 값이 나오게 될 것이다. #include int main(){ int arData[3]{ 3,2,1 }; int* p{}; p = arData; printf("%d\n", *p);}이 코드에서 p = arData;는 p = &arData [0];와 동일하게 작동한다.배열 이름인 arData는 첫 번째 요소의 주소를 나타내므로, p는 첫 번째 요소의 주소를 가지게 된다.따라..

C++ 2024.09.27

[강의] 9월 25일 수업정리

오늘도 포인터에 대한 수업을 진행하였다. 포인터와 배열의 개념 정리포인터는 일차원 배열과 유사하게 동작한다.간단히 말해, 포인터는 거대한 일차원 배열의 특정 위치를 가리키는 주소 값을 제공하는 것이다. 예제 1: 포인터의 주소값 변화#include int main(){ int nData{}; int* p{}; nData = 1; p = &nData; printf("%p\n", p); p++; printf("%p\n", p);} 위 코드에서 nData는 int형 변수이고, p는 nData의 주소를 가리키는 포인터이다.p를 출력하고 p++을 한 후 다시 출력을 하게 되면 값은 어떻게 바뀌게 되었을까? 실행을 해보게 되면 4가 증가된 것을 볼 수 있다.왜 1이 증가하지 않고 4가 증가하였을까? 그 이유는 in..

C++ 2024.09.26

[강의] 9월 24일 수업정리

오늘은 포인터에 대한 수업을 진행하였다. 포인터란?포인터는 프로그래밍 언어에서 다른 변수의 메모리 주소를 가리키는 변수이다. 즉, 포인터는 특정 변수가 저장된 메모리의 위치(주소)를 가리키며, 이 주소를 통해 해당 변수의 값을 참조하거나 조작할 수 있다. 간단한 예로, 컴퓨터 바탕화면의 바로가기를 생각해 보자. 메모장을 실행할 때 메모장 바로가기를 사용하면, 바로가기는 실제 메모장의 위치를 가리키는 역할을 하게 된다. 여기서 메모장은 변수이고, 바로가기는 포인터에 해당된다.  포인터 사용 시 주의사항널 포인터 체크는 중요하다널 포인터(NULL)는 포인터가 아무것도 가리키지 않음을 의미한다. 포인터가 유효한 주소를 가리키고 있는지 확인하지 않으면 프로그램이 잘못된 메모리에 접근할 수 있기 떄문이다.포인터가..

C++ 2024.09.25

[강의] 9월 13일 수업정리

문제 1. 크기가 가로 4, 세로 5인 2차원 배열을 다음과 같이 채우고 출력하는 프로그램12일날 풀었던 방식은 if를 사용하여 풀었지만 이번에는 if를 사용하지 않고 프로그램을 만들어볼려고한다. #include int main(){ int arArray[5][4]; int nData{}; int nAdd{}; nAdd = 1; for(int i = 0; i nAdd는 1 또는 -1의 값을 가지며, 이를 통해 숫자의 증가/감소를 조절각 행이 끝날 때 nData에 4를 추가하는 방식으로 다음 행의 시작값을 설정

C++ 2024.09.14