전체 글 219

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

오늘도 문제를 풀면서 수업을 진행하였다. 문제 1. 문자열을 문자열로 복사 주의점 :개수를 먼저 셀 경우 루프에서 손해를 보게 된다.일반 복사하면서 복사가 가능한지 체크한다어떤 상황이라도 반드시 마지막에 '\0' (NULL)을 보장해야 한다.최대한 다양한 방법으로 테스트를 진행해 본다.strSrc에 데이터가 있고 strDst에 공간이 있을 만 복사를 진행한다.#include bool strCopy(const char* strSrc, char* strDst, int nDstSize);int main(){ char Str1[64] = "asfasasfasf1231245a"; char Str2[64] = "khjkhj"; if (strCopy(Str1, Str2, 64)) printf("성공\n"); els..

C++ 2024.10.17

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

오늘은 char에 대한 문제를 풀어보았다.  문제 1. 문자열의 갯수를 얻어오는 함수#include int StrCount(const char* Str, int *pCount);int main(){ char chData[64] = "asdafwqfsafrtqg"; int nCount{}; StrCount(chData, &nCount); printf("%d", nCount);}int StrCount(const char* Str, int* pCount){ int nCount{}; for (int i = 0; Str[i] != '\0'; i++) { nCount++; } *pCount = nCount; return *pCount;} 문제 2. 문자열에 특정 글자가 몇개인지 얻어오는 함수#include int..

C++ 2024.10.16

[예습] 10월 14일 예습

1. char 자료형이란 무엇이며, 왜 만들어졌는가?목적Char 자료형은 문자를 저장하기 위해 설계되었다. 이는 문자, 숫자, 구두점과 같은 기호들을 저장할 수 있으며 1Byte(8 Bit)의 메모리를 차지하게 된다.작은 정수 ( -128 ~ 127까지의 signed 형태, 혹은 0 ~ 255까지의 unsigned 형태)를 저장하기 충분하다.왜 만들어졌는가char 자료형은 문자를 직접적으로 표현하기 위해 도입되었다이전에는 정수형으로 문자를 간접적으로 표현을 하였지만 ASCII와 같은 문자 인코딩을 사용하여 A, b, 1,! 같은 문자들을 숫자로 표현할 수 있게 되면서 char이라는 문자 데이터를 더 직관적으로 다 둘 수 있게 되었다. 2. char 배열과 문자열 구분하기char 배열과 문자열 C와 C++..

예습 2024.10.15

[강의] 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월 7일 예습

return에 대한 공부를 해보았다.1. return 문이란?return 문은 함수의 실행을 종료하고, 값을 호출한 곳으로 되돌려주는 역할.호출된 함수는 값을 환한 한 후, 호출한 코드로 제어를 넘긴다.정확히는 return문이 임시변수에 값을 복사를 하고 중괄호 끝으로 강제로 보내 실행을 종료하는것 처럼 보이는것이다.그래서 실행을 중단하고 그 시점에서 함수 블록 " {} "을 빠져나가게 되는것 처럼 보이게 되는것이다. 물론, 지역변수 메모리 해제와 같은 눈에 보이지 않은 기능을 처리하기도 한다.구문return [값];return 뒤에 있는 값(식)이 호출한 함수로 반환한다.함수가 값을 반환하는 경우, return 문을 통해 반환할 값을 지정해야 한다. 1.1 return의 동작과정 ( 중요 )임시변수 생..

예습 2024.10.08

[강의] 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