2진수로 구성된 컴퓨터에게 명령을 주기 위한 것.초창기에는 프로그래머가 컴퓨터의 모든 명령어를 알고 있어야 했음.근데 명령어들이 대체로 비슷했음.여기서 OS가 등장하면서 컴퓨터에 직접 명령을 내리지 않고OS를 통해서 컴퓨터를 제어함.PC OS 점유율은 윈도우가 90퍼센
주석 주석된 곳은 컴파일러가 코드로 인식하지 않음. 주로 설명이나 원치않는 코드를 실행하지 않는 용도로 작성. 자료형 Data type 자료형은 사용할 데이터의 형태를 설명하는 것. == Data Type 어떤 형태의 자료인지 명시하는 것. 정수형 자료형 cha
처리 방식이 달라 정수와 실수를 구분함정수 : char(1), short(2), int(4), long(4), long long(8)본래 4 byte 크기의 정수형 자료형은 long이었음.int는 본래 가변적으로 사용하도록 설계됐으나, 오랜시간 사용하다보니 자연스레 4
연산자 Operator 연산자 : 연산 명령을 수행시킬 수 있는 모든 명령어. 명령의 종료 ; 세미콜론 명령이 끝났다는 표시 구문과 구문을 나누는 것은 ; 단위 > 연산자에는 우선순위가 존재 대입 연산자 = 좌항에 우항의 값을 넣는다. 산술 연산자 +,
조건문과 삼항 연산자와 연계되어 사용됨.논리 단위 : 참 (true), 거짓 (false)결과를 반전시키는 연산자두 피연산자가 모두 true여야 true두 피연산자 중 하나만 true여도 trueTrue (참) : 0이 아닌 모든 수. 대표적으로 1을 참으로 사용.0
== : 두 피연산자가 같은 값!= : 두 피연산자가 다른 값A < B : 두 피연산자 중, B가 더 클 때 trueA > B : 두 피연산자 중, A가 더 클 때 trueA <= B : 두 피연산자 중, B가 A 이상(크거나 같음)일 때 trueA >= B
자주 사용하나 상대적으로 사용 빈도가 낮음학습 때는 이해하나, 시간이 지나면 잊으니 자주 상기시켜야 함.비트 단위로 실행하는 연산자비트를 화살표 방향으로 한 칸씩 밀어냄.1 byte십진수에서 자릿수 한 칸 이동은 10배 증가를 의미이진수에서 한 칸 이동은 2배 증가비트
변수 선언 위치, 앞의 키워드에 따라 사용법이 달라짐.함수의 코드 블록 안에서 선언된 변수.함수가 끝난다면 이 변수는 사라짐.함수 외부 선언된 변수.크게 세가지로 나뉨컴파일 과정을 이해해야 함.어떤 기능을 정의한 것.작은 함수들이 모여 큰 작동, 기능을 조립해서 커져
프로그램이란 함수들의 호출임.main()을 제일 처음 호출해서 프로그램을 시작.main() 내부를 모듈화했던 다른 클래스나 함수들 불러와서 호출하여컴퓨터에게 원하는 시키는 것.main() 함수의 호출이 끝나면 프로그램도 끝나는 것.일반적인 프로그램들이 바로 끝나지 않는
주석 및 일반ctrl + k, c : 지정한 구문 주석ctrl + k, u : 주석 해제alt + 드래그 : 지정한 곳만 선택디버깅F5 : 디버깅 시작F9 : 중단점 생성 및 해제중단점은 그 구문을 수행하기 직전에 멈추는 것F10 : 디버깅 중, 구문 수행F11 : 디
프로그램의 진입점 : main()프로그램 종료 : main()의 종료프로그램의 실행은 main() 함수 내에서 호출하는 무수한 함수들이 작동하는 것.main > a > b > c 식으로 끊임없이 호출이 쌓이는 것이런 모습이 자료구조에서 stack 개념과 유사stack
동일한 자료형을 여러 개 이어서 사용하는 것메모리를 연속적으로 사용한다는 특성이 있음.어떤 종류의 자료형을 여럿 만들어서 써야할 때가 있을 것.자료형 변수명\[배열 갯수]범위 초과는 본래 디버그 모드에선 바로 발견 가능하지만릴리즈 모드에서는 별도의 오류 표시가 나지 않
cpp 특성상 메모리를 직접 다루는 경우가 많기 때문에변수를 사용할 때, 각각 어느 메모리를 쓰고 어떤 특징이 있는지 알아두는 것이 좋음.숙달만 되면 시간 투자로 뭐든 할 수 있을 것임.스택 영역 : 함수들이 사용하는 메모리 영역지역변수는 함수가 호출될 때 생성되므로
헤더 파일과 cpp 파일을 분리해서 구현하는 것오류남.컴퓨터는 코드는 위에서 아래로 순차적으로 읽어 내려감.먼저 명시된 main()에서 사전에 찾을 수 없던 Test()가 호출되고 있으므로컴퓨터는 오류라 판단하는 것.이 형태는 작동함.위에 함수에 대한 선언이 있고, 정
분할구현에서는 전역 변수를 원하는대로 사용할 수 없었음.이를 해결하기 위한 방법static 를 붙여 사용정적 변수도 데이터 영역에 저장.전역 변수와 달리 이렇게 사용해도 문제 없음.정적 변수는 선언되는 위치에 따라 동작에 차이가 있음.하지만 정적 변수 자체(static
비주얼 스튜디오솔루션 생성프로젝트 a헤더, cpp 등등빌드 시, 실행 파일(프로그램)이 생성되는 것프로젝트 b..비주얼 스튜디오에서 의미하는 플랫폼은 OS(운영체제)PCWindowMacOS모바일안드로이드IOS게임 시장PC 게임 플랫품SteamEpic GamesUplay
포인터 : 주소를 가리키는 기능포인터 변수 : 주소를 가리키는, 저장하는 변수자료형\* : \*를 붙여서 자료형의 변수를 가리키는 주소값.nullptr : null 주소, 아무것도 가리키지 않는다. (실제값 0)&i : 변수 i의 주소를 나타냄.pInt는 i의 주소를
포인터는 주소를 저장.자료형은 해당 주소를 자료형으로 해석하겠다는 의미일 뿐, 본질은 주소값주소 단위는? 플랫폼에 따른 가변 길이플랫폼에서 윈도우는 32 bit(x86), 64 bit 두 종류가 있다고 했음.플랫폼에 따라서 포인터 변수의 크기가 달라짐.한번에 명령을 처
값이 바뀌지 않는 데이터 <-> 변수r-value : 우항. 바뀌지 않는 값. 상수를 의미.l-value : 좌항. 대입을 받는 대상. 변수를 의미.이 상수가 변하지 않을거라고 생각함.cInt = 500; 이것과 같은 행위는 문법적으로 방지근데, 포인터를 사용하면
함수의 반환값이 없을 경우 void를 사용.별도로 return 없어도 됨.void가 포인터와 섞일때가 있음void\* pVoid : 포인터 변수역참조 했을 때, 이 값은 void 타입으로 해석하는 것.즉, 원본의 값을 접근했을 때 무엇으로 해석할지 정하지 않은 것.정해
스택 영역 - 함수가 사용하는 영역데이터 영역 - 프로그램 실행 시, 사용하는 영역ROM(코드 영역) - 읽기 전용힙 영역char 타입 : 1 Byte 정수형 자료형 (문자)메모리 상에서는 65, 97의 이진수 값이지만프롬프트상에서는 문자로 해석되어 A, a 와 같이
MYST\* pST = &st1; 해당 주소로가면 8 Byte 크기의 MYST로 해석\*pST;역참조하면 a, f 두 가지 접근 가능(\*pST).a = 100;(\*pST).f = 3.14f;만약 잘못 참조한다면?구조체 포인터에 다른 타입의 주소값을 넣는 것.컴퓨터는

지금까지 어떤 변수도 힙 영역은 쓰지 않았음.스택 영역 : 지역 변수데이터 영역 : 전역, 정적, 외부 변수변수들은 코드 상에 사용할 자료들을 미리 정해뒀음.하지만, 프로그램을 실행시켜봐야 알 수 있는 경우?실시간으로 대응 가능한 메모리가 필요함. => 동적할당이런 용
지금까지 배열은 크기가 고정이었음.int arr\[a] = {}; : 상수 값이 아니라면 배열 선언에 사용할 수 없음.런타임중에 정해지는 것이므로 넣을 수 없는것.컴파일러 입장에선 이 값이 정해지지 않았기 때문에 고정된 메모리 크기를 만들어줄 수 없음.스택 영역은 코드
가변 배열과 같이 동적으로 배열을 추가할 수 있음.하지만 작동 방식이 다름가변 배열은 가득 차면 2배씩 새로 할당함기본 배열에 길이가 변동할 수 있도록 한 것메모리는 연속적으로 관리같은 힙 메모리더라도 데이터가 띄엄띄엄 떨어져있음그때그때 데이터 공간 한 칸을 새로 만듦

지금까진 변수의 포인터를 사용해왔는데, 함수의 주소도 받아올 수 있음.만약 정렬 함수가 여럿인 상황에서 특정한 원하는 정렬 함수를 매개변수로 전달해서정렬할 순 없을까?c 함수의 주소를 넘길때, 이렇게 함수 주소를 줘도 됨.그리고 함수 이름 자체가 주소로 판정됨.voi
(구조체와 마찬가지로) 사용자 정의 자료형c++ 클래스가 기존 c 구조체에 없던 객체지향적 기능을 제공함.구조체의 기능도 더 개선해서 사용할 수 있음.재정의할 필요와 typedef 없이도 선언 가능.private, public, protected기존 가변배열 구현 중에
자료형\* 변수명 : 포인터 선언\*포인터변수 : 포인터변수 역참조&변수 : 변수의 주소값 반환C++에 와서 원본에 접근할 방법이 추가된 방법 : 레퍼런스자료형& 변수명 : 레퍼런스 변수 선언포인터와 유사원본을 참조한다.위 아래가 동일한 동작을 함.컴파일러 동작이 포인
헤더이므로 선언만 할 것헤더에서 정의하지 않는 이유는 헤더 include 시 재정의 되기 때문인데인라인을 쓰면 또 우회할 순 있음.생성자, 소멸자일반적으로는 public으로 선언컴파일러가 호출할 수 있도록하기 위함.private, protected라면 외부에서 생성자에

이런 함수가 있을 때, 매개변수가 만약 실수 타입라면?정확한 계산을 위해서 실수 타입의 함수를 새로 만들 필요가 생김.이런 식으로 기능은 유사한데 구성하는 매개변수나 반환형이 달라서 생기는 상황들은불필요한 노가다처럼 느껴짐그래서 나온 것이 템플릿 기능c \* 템플릿
이번에는 양방향으로 관리해볼 것구성요소리스트 - 클래스노드 - 구조체c++ 문법 기준, 클래스와 구조체의 차이는 거의 없음.c에서의 구조체 -> c++에서의 클래스둘이 사실상 같음.구조체도 생성자, 소멸자, 상속도 가능.구조체는 디폴트 접근 제한자가 public클래스는
일반적으로 클래스의 경우, 클래스 내부에 선언한 기능에 접근하기 위해선 범위지정연산자::를 사용했음.일반적인 멤버 함수는 결국 객체(instance)가 필요하여 직접 호출은 못했음.다만, 정적 멤버함수 static 함수들은 위의 방식으로 접근 가능.객체없이 클래스로 바
STL : Standard Template Library c++에서 제공하는 표준 템플릿 라이브러리 STL로 제공하는 자료구조 , , , 등등 템플릿 형태로 제공해서 다양한 자료형에 대응 가능 > 이렇게 제공하는데도 직접 만들어본 이유 기존에 배운 것들을
vector(가변배열), list(연결형 리스트)에서 내부 데이터를 순회하기 편하도록 구현한 기능vector, list 내부에 구현된 iterator에 접근함으로써 공통적으로 사용할 수 있음.공통된 인터페이스STL의 자료구조를 사용하면 모두 이런 iterator가 구현
컴파일러에게 판단을 맡겨 최적화 진행을 요청함.일반적으로 함수는 스택 메모리를 사용.재귀함수가 그래서 비효율적이었던 이유.함수 하나에서 다 해결하는 것이 아니라 여러번 호출해서 해결inline 기능inline 키워드가 붙은 함수가 다른 함수 내에서 호출될 때, 새로운
객체지향 언어의 특징 캡슐화 목적으로 하는 기능에 필요한 멤버 변수, 기능을 하나의 클래스로 묶어서 구현하는 것. 은닉성 : 외부에서 접근이 불필요한 중요 멤버에 대해서는 접근시키지 못하게 하는 것. 상속 다형성 추상화 상속 inherit 어떤 클래스

상속과 포인터를 이용해야 cpp의 다형성을 이해할 수 있음.CChild\* pChild2 = &parent;하위 클래스는 상위 클래스를 확장한 것. 메모리상으로 상위 클래스 + 하위 클래스의 추가 기능 = 하위 클래스포인터는 시작 주소를 통해서 받는다고 할 때,객체