본문 바로가기

ZAION23

[C++]Lec04-02. Pointer & Reference ## 목차1. References   #1 References1 - 1) 참조자란- 변수의 별명 - 참조자는 새로운 변수가 아니다. - 변수가 아니라는 의미는 메모리에 새로운 공간을 차지하지 않는다는 의미이다. - 포인터 변수는 그 자체가 주소값을 저장하는 하나의 변수였지만, 참조자는 다르다. - 선언과 동시에 초기화 되어야 한다.(null : x) - 한 번 초기화되면, 다른 변수의 참조자가 될 수 없다. - const인 pointer이면서, 사용 시 자동으로 역참조를 수행하는 개념이다. - 포인터의 간단하고 편리한 버전으로 기억 - C++에서 함수의 매개변수로 자주 사용된다. - int&, float& 등 변수 정의시에 &를 붙인 타입을사용- 포인터와 마찬가지로, 동일한 타입에 대해서만 참조자 생성 .. 2024. 4. 30.
[C++]Lec04-01. Pointer & Reference ## 목차1. Pointer   #1 Pointer1 - 1) 포인터 개요포인터 변수는 변수의 타입 중 하나이다. 포인터 변수의 값은 메모리의 주소를 저장하는 값이다. 지금싸지 사용한 변수와 포인터 변수와의 차이는 값을 저장하는지, 주소를 저장하는지에 대한 차이가 있다. 포인터는 가리키는 주소에 저장된 데이터의 타입을 알아야 한다. 포인터를 사용하는 이유- 동적 할당을 통해 힙 영역의 메모리를 사용한다.- 변수의 범위 문제로 접근할 수 없는 곳의 데이터를 사용(참조자와 유사한 목적)- 배열의 효율적인 사용- 다형성은 포인터를 기반으로 구현된다.- 시스템 응용프로그램 / 임베디드 프로그래밍에서 메모리에 직접적인 접근이 필요하다.   1 - 2) 포인터의 정의기존 변수 타입 뒤에 "*" 를 붙여 포인터 변수.. 2024. 4. 26.
[C++]Lec03. Function ## 목차1. Function 정의2. Prototype3. parameter and pass-by-value4. return 문5. default argument6. overloading7. 함수 호출의 동작 방식8. 포인터와 참조자9. inline 함수10. recursive(재귀함수)   #1 Function 정의1 - 1) FunctionsC++ 프로그램의 함수- C++ 표준 라이브러리(함수와 클래스)- 써드 파티 라이브러리(함수와 클래스) : 비공식 라이브러리이며, 외부에서 개발된 라이브러리- 직접 구현한 함수와 클래스 추상적 흐름(함수 -> 모듈화 -> 재사용성)- 코드를 독립적인 연산으로 분할- 연산들을 재사용 가독성 비교모듈화 전int main() { // read input stateme.. 2024. 4. 25.
[C++]Lec02. Debugging ## 목차1. 디버깅이란2. Visual Studio에서의 디버깅   #1 디버깅이란- 버그(=오류)를 제거하는 것- 오류의 종류 :  - 컴파일 / 링크 오류 : 오류의 원인이 명확하며, 출력 창을 통해 쉽게 원인 파악 가능하다. - 런타임 / 논리적 오류 : 문제 발생 원인을 찾기 어렵다. IDE에서 제공하는 디버깅 기능과 테스트를 현명하게 사용해야 문제를 빠르게 해결 가능하다. - 중요한점은 개발 숙련도가 높아지더라도  오류 없는 프로그램을 단번에 개발하는 것은 불가능하다. 그리고 숙련도가 높아짐에 따라 오류의 "확률"이 줄고, 디버깅 속도가 빨라지는 것이다. 즉, 오류를 많이 내고 스스로 디버깅을 반복적으로 수행하고 고민하는 경험을 쌓는 것이 중요하다. - 디버깅을 하기 .. 2024. 4. 24.
[C++]Lec02. Basic Syntax ## 목차 1. 배열 2. 표현식 3. 명령문 4. 연산자 5. 제어문 #1 Array(배열) 1 - 1) 개요 - 복합 데이터타입 - 동일한 타입인 요소들의 집합 - 개별 요소들에 직접적인 접근이 가능하다. - 아래와 같이 동일한 타입의 변수를 반복해서 선언할 때 효율적으로 바꾸기 위해서 사용한다. 특징 - 고정된 길이 - 연속된 메모리 주소에 저장 - 인덱스를 통해 접근이 가능 - 인덱스는 0부터 시작하며, 마지막 인덱스는 length-1 - out of bound(배열이나 메모리 범위를 벗어난 에러) 체크 하지 않음 - 초기화 필요 - 효율적인 데이터 구조 int main() { int scores[6] = { 100, 85, 21, 56, 70, 95 }; } 1 - 2) 선언과 초기화 배열의 기.. 2024. 4. 23.
[C++]Lec01. Variable and Constant ## 목차 1. 변수와 메모리 2. 변수의 타입 3. 상수 4. 엔디언 #1 변수와 메모리 1 - 1) Bit, Byte, Hex *진수의 개념이 핵심이 아니므로 기본적인 진수법은 알고 있다는 가정하에 정리하겠습니다. 진수의 사용 이유 : 컴퓨터는 진수의 표현을 전기적인 신호로 판단한다. 그렇기에 컴퓨터는 2진수를 사용하기 때문에 신호의 단계가 두개이다. 전기 신호가 있으면 1, 없으면 0 으로 판단한다. 2진수는 신호가 있거나(1), 없거나(0) 둘 중 하나이다. 있거나 없는것에 중간은 없다. 이러한 이유로 안전한 2진수 체계를 사용한다. 2진수는 이해가 되지만 왜 20진수도 아니고 왠지 애매하게 느껴지는 16진수를 사용하는 이유는 16이 2의 4승 이기 때문에 2진수와 4대 1의 변환이 가능하다는 점.. 2024. 4. 23.