C,C++/[강의] 어소트락 C++ 17
-
#include // // 1. 지역변수 : 스택 영역을 사용함// 2. 전역변수 : 데이터 영역을 사용함.// 3. 정적변수 (static) : 데이터 영역을 사용함.// 4. 외부변수 (extern) : 데이터 영역을 사용함.// - OS가 프로그램이 실행될 때 부여하는 메모리 영역. // OS마다 다르고, 디테일하게는 더욱 세분화하여 분류할 수 있지만 대표적으로 아래의 4가지로 분류된다.// 1. 스택영역 : 운영 체제가 알아서 크기를 정한다. 대부분 1MB 정도 크기를 할당하면 충분하다.// 프로그래머가 직접 그 할당 크기를 조절할 수 있긴 하지만 거의 건드릴 일이 없다.// 함수의 설계도 대로 실행되는 실행흐름의 메모리가 존재한다. (실제 실행되는 코드를 메모리에 올린다)// 이러한 메모리는 ..
-
* 자료형(Data type) : 내가 만든 변수(데이터)가 어떤 역할을 하는지 설명한다.* 구조체 (=사용자 정의 자료형) : 내가 직접 자료형을 만들어서 사용하는 것을 구조체라고 한다.#include // // struct : 구조체를 정의하는 핵심 키워드// typedef : 타입을 재정의 해줌typedef int INT; // 기존에 있던 기본 자료형 int의 이름을 INT로 바꾸었다. // 이후부터는 INT라고 적어도 컴파일러는 이것을 int로 받아들인다.INT a; // 단순히 코드만 바꾸는 것이 아니라 INT도 int의 새로운 이름이라고 정의함.typedef struct _tagMyST{ int a; // a는 실체가 있는 것이 아니다. ..
-
배열이란형식이 같은 자료형 여러 개가 모여 새로운 하나를 이룬 형식을 뜻한다.즉, int 자료형 변수 5개가 모이면 int형 배열이 된다.배열이 기존의 변수와 가장 다른 점 중 하나는 변수의 이름과 달리 배열의 이름은 메모리의 주소라는 점이다.(추후 포인터를 배우면 더 명확해지겠지만, aList[i]가 있다면 여기서 배열 이름 aList는 변수가 아니라 0번 요소의 주소(&aList[0])를 뜻한다.)배열을 사용하면 구조가 간결하고 유지보수가 쉬운 좋은 코드를 만드는데 도움이 된다.연산에 참여하는 각 변수들을 이름으로만 접근하는 것이 아닌 '배열 연산자'를 활용해 접근할 수 있기 때문이다.이때 배열 연산자는 배열이름[인덱스] 형식을 가지며 동일한 형식으로 접근할 수 있다. 배열은 0부터 시작하는 zero..
-
자료구조1. 스택 (함수의 호출방식과 닮았다.)2. 큐 함수가 사용하는 메모리 공간을 스택 메모리 공간이라고 한다. 스택 위와 같이 함수를 호출하면 결과가 되돌아온다.같은 함수를 연달아 호출하면 이전 메모리가 삭제된 시점 이후 연산해 리턴하고, 메모리에서 삭제 한다.int iData = Add(100, 200); -> 300을 리턴해 변수에 할당 한 뒤 함수 스택 메모리에서 삭제int iData = Add(300, 400); -> 700을 리턴해 변수에 할당 한 뒤 함수 스택 메모리에서 삭제 ※ 코드와 메모리 영역은 같은 개념이 아니다!코드는 명령어의 집합으로, 일종의 작업 명령서와 같다. (EX. 땅을 파서 건물 2채를 지어라.)메모리 영역은 명령 수행에 맞춰 동작하고 있는 곳으로 일종의 땅 덩어리다...
-
1. 지정한 부분 주석 : Ctrl+k, c2. 지정한 부분 주석 해제 : Ctrl+k, u3. 부분 영역 선택 : Alt + Drag4. 디버깅 시작 : F55. 중단점 생성 및 해제 : F96. 디버깅 중, 구문 수행 : F107. 디버깅 중, 구문 수행(함수 진입) : F118. 디버깅 종료 : Shift + F59. 정의 또는 선언 위치로 이동 : 영역 선택 + F1210. 함수 선언 원형 확인 : 함수 매개변수 넣는 괄호 안에서 Ctrl+shift+space11. 함수 원형에 대한 정의 : 함수 이름 선택한 상태에서 Ctrl + .12. 변수 이름 바꾸기 : 변수 영역 마우스로 선택 후 Ctrl + r + r13. 프로젝트 빌드 : F7
-
1. 함수// 함수// 모듈화 -> 습관적으로 모듈화 하라. 기능에 대해 세부적으로 잘 나눠져있어야 한다.// 하나의 함수에 여러가지 기능이 섞여있어선 안된다.// 필요한 기능만 호출해서 바로 사용할 수 있어야 한다.// 이 기능을 다시 조합해서 새로운 기능을 만들 수 있다.int Add(int left, int right){ return left+right;}data = Add(10, 20); // 30이 할당된다.// 함수int Add(int a, int b){ return 0;}int main() // 프로그램 진입점{ int iData = Add(100, 200); return 0;}// 라이브러리 함수 사용 예시#include printf();printf("OUTPUT TEST");scan..
-
비트 연산자// 비트 연산자// 시프트 >unsinged char btye = 13;byte >= 2; // 2^n으로 나눈 몫이 됨, 즉 2^2 = 4로 나눈 몫// 비트곱 (&), 합(|), XOR(^), 비트 반전(~)// 비트 단위로 연산을 진행함.// & : 둘 다 1인 경우 1// | : 둘 중 하나라도 1이면 1// ^(XOR) : 같으면 0, 다르면 1(홀수 개의 1이 있으면 1)// ~: 1은 0으로, 0은 1로 변환// 비트 연산은 게임에서도 사용된다.// EX. 툴, 프로그램에서 사용. Define과 함께 특정 상태 지정 시 유용하다. Define#define HUNGRY 1int iStatus = HUNGRY; (=1을 할당한 것과 같은 결과가 됨)// 전처리기 매크로 define을..
-
1. 주석// 주석// 설명 역할, 코드로 인식되지 않는다. 존재하지만 존재하지 않는 것처럼 여기는 마치 깍두기 같은 존재.주석에 대한 자세한 설명은 이전에 작성한 글 (https://risehyun.tistory.com/37)의 5번 문항을 참고하자.2. 변수변수(variable)란 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간이다.간단히 말하자면 구체화 하지 않았거나 앞으로 변경될 가능성이 있는 수를 변수라고 할 수 있다.변수는 데이터 값을 일시적으로 저장하는 역할을 하는 일종의 데이터 임시 저장용 상자로,이 상자는 컴퓨터 내부의 메모리 안에 만들어 진다. 변수가 필요한 이유크게 아래의 두 가지로 정리할 수 있다.1. 사용자에게서 받는 데이터를 저장할 수 있다.2. 프로그램 코드에 직접 값..