목록분류 전체보기 (156)
승쨩개발공부
레퍼런스 원본 데이터에 접근하는 방법은 2개가 있다. 1. 포인터 주소를 통해 접근 -> 간접참조 2.레퍼런스 별명을 부여해서 접근 -> 직접참조 래퍼런스 선언 자료형 & 변수명(별명) int iA = 10; int& r = iA; r = 100; cout
함수 포인터 사용자가 작성한 모든 코드들은 번역이 진행 된 후 Code 영역에 등록이 된다. -> 함수 또한 사용자가 작성한 코드이다. -> 함수 또한 메모리 영역에 등록이 된다. 함수를 호출할 떄에는 함수명 + 함수호출 연산자를 사용한다. 여기서 연산자를 제거하면 함수 명만 남게된다. 이 떄 남는 함수 명이 함수의 주소를 가르키는 포인터이다. ex) 함수 포인터형 함수 이름은 주소를 의미하니 다른 포인터 변수에 저장할 수 있다. 반환타임(*변수명)(매개변수 타입) 함수 포인터 계산기 1. 함수 포인터 배열을 사용한 방법. 2. 함수 포인터를 사용한 방법. 3. 일반적인 분기 방법
공용체 사용자 정의 자료형 구조체와 비슷한 형태를 가진다. 모든 멤버 변수들이 하나의 메모리 공간을 공유(쉐어)해서 사용한다. 공용체(union) 정의 union 자료형이름 { 멤버 변수 멤버 변수 멤버 변수 } 구조체(struct) 정의 struct 자료형 이름 { 멤버 변수 멤버 변수 멤버 변수 } 공용체 정의 // 공용체 정의 union uniBox { int a; float b; }; // 구조체 정의 struct tagBox { int a; float b; }; 선언 tagBox tBox; uniBox uBox; 초기화 tagBox tBox; uniBox uBox; 데이터 초기화 tagBox tBox = { 10, 3.14f }; // 가능 uniBox uBox = { 10, 3.14f }; /..
열거체 사용자 정의 자료형이다. 상태 값 지정 시 주로 사용된다. TextRPG 에서 Combat함수로 반환하는 상태에 따라 분기를 수행한다. -> 승리, 패배, 도망 하지만 반환 값 들이 늘어난다면? ex) IDLE, WALK, ATTACK, RUN, JUMP, FALL, DEAD ... 등 이러한 값들이 점점 늘어난다면 switch문 같은것을 수행할떄 상수만으로 판단이 어렵다. 이 경우, 열거체를 사용해서 판독하자. 열거체의 정의 1. enum 자료형이름 { 열거자, 열거자 , 열거자 } 2. enum 자료형이름 { 열거자, 열거자, 열거자 } 열거자 상수의 성질을 가진다. 사용자가 임의로 수정할 수 있지만, 수정하지 않을 경우 좌측부터 0으로 시작하여 1씩 증가한 값을 가지게 된다. 열거체 선언 e..
입출력(IO) 입력과 출력. 주체에 따라 입출력의 위치가 바뀐다. 프로그래밍에서 주체는 cpp파일, 실행파일이 주체가 된다. 입력 주체(파일)가 데이터를 받아오는 것. 출력 주체(파일)가 데이터를 내보내는 것. 입력 장치 : 키보드, 마우스 등 출력 장치 : 모니터, 스피커 등 스트림(Stream) 가상의 통로. 프로그램과 키보드, 프로그램과 모니터는 서로 연결되어있지 않다. 이러한 장치들을 서로 연결시켜주는 것이 스트림(통로)이다. 표준 스트림 stdin : 표준(std) 입력(in) 스트림(stream). 기본 키보드 대상 stdout: 표준 출력(out) 스트림. 기본 모니터 대상 stderr: 표준 오류(err) 스트림. 기본 모니터 대상 버퍼(Buff) 스트림 중간에 있는 메모리 블록 데이터 송..
메모리 구조 컴퓨터의 운영체제는 프로그램 실행을 위해서 메모리 영역을 제공한다. 메모리 영역의 구조는 CODE, DATA, HEAP, STACK 4가지 영역으로 이루어져 있다. CODE 영역 코드 영역은 말 그대로 실행하는 프로그램의 코드가 저장되는 영역이다. 영어로 텍스트 영역이라고도 불린다. CPU 는 이 코드 영역에 저장된 명령어들을 처리하게 된다. (함수 코드는 코드영역의 바이너리 형태로 저장된다) DATA 영역 데이터 영역은 프로그램의 전역 변수와 정적 변수(static 변수)가 저장되는 영역이다. 메모리의 할당 시점은 프로그램 시작시 할당되며, 프로그램 종료시 소멸 된다. HEAP 영역 힙 영역은 프로그래머가 직접 메모리를 관리할 수 있는 영역이다. 프로그래머가 원하는 시점에 메모리를 할당할 ..