본문 바로가기

C++15

[C++] 챕터 17 - 문자열 : 문자의 배열 // 17-1 : 문자열의 복사 #include #include // 문자열 관련 함수 사용 준비한다. c는 c++에서 제공하는 함수라는 의미다. using namespace std; int main() { char src[] = "Hanbit-Media"; // 문자열을 만든다. int len = strlen(src); // 문자열 길이를 잰다. char* dest = new char[len + 1]; // 새 문자열에 메모리 할당한다. strcpy(dest, src); // src 내용을 dest로 복사한다. // 출력 cout > cs; // 심각한 문제점이 있다. cin >> cpps; // 출력 cout 2023. 6. 14.
[C++] 챕터 16 - 동적 메모리 할당 : 보다 자유로운 저장 공간 // 16-1 : 입력 값의 평균 구하기 #include using namespace std; int main() { // 개수 입력받기 int size; cout size; int* arr = new int[size]; // 메모리 할당 // 정수 입력 받기 cout > arr[i]; // 평균 계산 출력 int sum = 0; for (int i = 0; i < size; ++i) { sum += arr[i]; } float ave = (float)sum / (float)size; cout 2023. 6. 14.
[C++] 챕터 15 - 함수 2 : 함수의 모든 것 // 15-1 : 디폴트 인자의 사용 /* 책 내용이 좋으나 예제코드가 없어 여기에 적는다. // 오버로딩 여러 함수들이 동일한 이름 사용할 수 있는 기능이다. int max(int a, int b); float max(float a, float b); 위를 보면 이름은 같으나, 반환값과 인자 타입이 다르다. 뭐가 좋은가? 타입이 바뀌더라도 max 함수 호출 코드는 바뀌지 않아서 좋다. //기본적인 오버로딩 규칙 - 여러개 있을때 판별기준은 무엇인가? 컴퓨터가 인자의 타입을 확인해 가장 잘 어울리는 시그너치를 가진 함수를 호출한다. - 반환값만 틀린 경우 오버로드 불가하다. int Var(char c, int i); double Var(char c, int i); 위 코드는 반환은 다르나, 시그니처 동일.. 2023. 6. 14.
[C++] 챕터 14 - 함수 1 : 관련된 코드 모아담는 가방 // 14-1, 2, 3 : 주석 참고 // 14-1 스킵. 함수 필요성 설명을 위한 예제이다. 이해할 필요 없는 예제. // 14-2 : 화면에 문자열 출력하는 함수 #include using namespace std; void PrintMessage() { cout 2023. 6. 14.
[C++] 챕터 13 - 복합 타입 : 복합적인 정보 // 13-1 : 공용체의 특징 확인 #include using namespace std; union MyUnion { int i; void* p; }; int main() { MyUnion uni; // 멤버의 주소확인 cout 2023. 6. 14.
[C++] 챕터 12 - 배열과 구조체와 포인터 : 복합적인 방법으로 정보를 다루는 법 // 12-1 : 포인터에 1을 더하는 것의 의미 #include using namespace std; int main() { int array[10]; // 배열 정의 int* p = &array[5]; // array[5]를 가리킨다. cout y = 250; // 출력 cout x도 동일한 기능이다. 이게 더 대중적인 방식이다. */ // 12-11 : 포인터를 포함하는 구조체 #include using namespace std; struct IHaveAPointer { int x, y; long* pl; }; int main() { // 참조될 변수 long l = 300; IHaveAPointer ihap; ihap.pl = &l; // 참조될 변수를 가리킨다. return 0; } /* ---.. 2023. 6. 14.
[C++] 챕터 11 - 포인터 : 정보에 대한 정보 // 11-1 : 변수의 주소 #include using namespace std; int main() { // 변수 정의 char c = 'B'; int i = 19; float f = 4.5f; // 주소 출력 cout 2023. 4. 27.
[C++] 챕터 10 - 구조체 : 다양한 타입의 정보를 한 곳에 모으는 법 // 10-1 : 구조체의 정의 #include using namespace std; // 구조체 정의 struct StudentInfo { char bloodType; // 혈액형 int stdNumber; // 학번 float grade; // 평점 }; int main() { // 구조체 타입의 '변수' 정의 StudentInfo si1; StudentInfo si2; return 0; } /* --- 결과 --- ------ 구조체의 가장 중요한 목표는 여러가지 변수를 그룹처럼 만드는 것이다. main함수 안에서도 정의할 수 있다. 그러나 밖에서 정의하는 것이 일반적이다. 구조체 정의는 붕어빵 틀이다. 구조체 변수 정의는 붕어빵이다. 구조체 정의시 별도 메모리 공간이 할당되지 않는다. 구조체 '변.. 2023. 4. 27.
[C++] 챕터 9 - 배열 : 변수를 여러개 모아 놓은 변수 // 9-1 : 배열의 사용 int main() { int kor_scores[5]; kor_scores[0] = 100; kor_scores[1] = 88; kor_scores[2] = 92; kor_scores[3] = 40; kor_scores[4] = 76; return 0; } /* 변수를 몇개 만들어 대괄호 안에 적어준다. */ // 9-2, 3 : 100번째 원소에 접근하기, 원소의 탐색 int main() { int kor_scores[5]; kor_scores[100] = 100; return 0; } /* 접근위반하면 프로그램 갑자기 죽을 수 있다. (잘못된 원소에 접근) 올바른 범위 인덱스 사용은 개발자 책임이다. */ /* --- 9-3 --- 원소 탐색법 알려준다. for문 돌려서.. 2023. 4. 25.