1byte=8bit 1byte=2^7=256가지의 수 나타 낼수 있다. 비트는 맨 뒤에서부터 2^0부터 시작 unSigned라면 나타낼수 있는 수는 0~255 Signed라면 -128~127unsigned char a=256; \-> 0 255까지 표현 가능하기 때문
1.연산자대입 연산자 -> =,+=,-=,\*=lvalue=rvaluelvalue는 변수 그 자체rvalue는 값, (변수,상수,수식)2.산술연산%-나머지 연산자/-몫 연산자나머지 연산에서 실수가 하나라도 있다면 오류이유- 나머지의 자릿수가 끝이 없기 때문3.정수,실수
1.비트 shift<< lvalue를 rvalue 만큼 왼쪽으로 밀기lvalue를 rvalue 만큼 오른쪽으로 밀기() 비트 연산-비트 각 자리마다 연산| -합 두 비트 하나라도 1이면 1& -곱 두 비트 모두 1이여야 1^ -xor 같으면0,다르면
전처리->컴파일->링크 ->실행파일컴파일 종료시 프로젝트명.obj의 형태가 됨, 모든 소스코드들이 기계어가 되었다는 것링크: 컴파일된 기계어들을 라이브러리 파일들과 결합하는 단계선언: 식별자 이름과 속성int number;void math(); 정의 :식별자 본질 Vo
메모리 : 변수스택: 지역변수데이터:전역변수데이터:정적변수(static)데이터:외부변수(extern)지역이 호출이 되어야지만 변수 생성, 지역 사라지면 변수도 사라짐프로그램 실행 시 생성 , 종료 시 제거동적할당 영역, 온전히 사용자가 생성,제거 사용자가 제거 하지 않
정적변수 (static)파일에 선언되면 그 파일에,함수에서 선언되면 그 함수에클래스,구조체에 선언되면 그 클래스 ,구조체에서만 국한된다. - 정적의 의미즉, 사용은 선언된 내부에서만 사용 가능,하지만 데이터 영역에 존재하기 때문에 정적변수 해당 지역이 사라졌다가 다시
struct A{ int a; char b;}구조체 크기는 8byte그러나 union B{ int a; float b;}union 크기는 4byte멤버중 가장 큰 타입으로 다른 멤버들과 공유union을 멤버 a로 읽으면 int로 보고 멤버 b로 보면 floa
반복문While(조건){} 조건이 참이면 계속 정의문 실행{} 1->2(참)>정의문 실행->3번->2번(참)->정의문 실행->3번 >2번(거짓) 실행 종료 1,2,3 공백으로 비울 수 있음
주소주소는 1byte단위로 래핑.포인터 변수크기: 운영체제 시스템이 솔루션 플랫폼 무엇을 따르냐에 따라 다름 64-8byte ,86-4byte정의: 주소를 저장하고 있는 변수 선언된 자료형으로 그 주소를 해석하겠다. (그 주소가 선언된 자료형과 다른 자료형의
함수 포인터반환 이름 매개변수Void name()사용하고자 하는 함수가 어느 곳에 있는지 먼저 볼 것1.사용하고자 하는 함수(매개변수로 사용하고자 하는 함수)가 같은 파일 전역 함수일 때사용하고자 하는 함수(매개변수로 사용하고자 하는 함수)가 다른 네임스페이스 함수일
Const가 붙었다면 문법적으로 상수화,But 주소를 통해 그 변수의 값을 강제로 바꿀 수도 있음( 이 상황 자체가 잘못 됨)변수 가리키는 대상을 바꾸다. 가리키고 있는 곳의 값을 바꾸다.(포인터가 참조하여 값을 바꾸는 기능이 상실된것)\*기준으로 const가 앞에 있
문자를 치면 문자에 해당하는 아스키 코드 숫자를 비트에 넣는다. 숫자를 넣는다면? char a=64;숫자 64,즉 비트들에 64가 박히고 그 비트 해당하는 아스키 코드의 문자를 a에 대입char =‘문자’ 멀티바이트, 조건부에 따른 1바이트 또는 2바이
Push front일때 헤드만 바꿔주면 됨-> 처리 시간이 짧다중간에 데이터 인설트하거나 앞에 데이터를 넣을 때 유용.특정 위치에 바로 접근 x, 무조건 헤드부터 가야 됨(특정위치에 바로 접근을 하기 위해선 다른 컨테이너를 사용해야 한다)이중연결 리스트(노드 기준 전
1.가변배열 구조2.데이터 하나를 넣을 때 마다 자료형 크기로 사이즈 크게 동적할당 하여 새 배열을 가진다3.배열의 이름은 배열의 첫 주소와 같다. 포인터와 같은 역할을 할수 있다4.순서에 상관없이 랜덤하게 vector 인덱스에 접근 가능하다 (윗 내용을 근거로)5.A
(생성자,소멸자를 구조체를 매개변수로 받는 함수로 사용자가 따로 만들어 줘야 함) public,protected,private멤버 구분 가능
탬플릿은 하나의 틀.자료형이 객체를 생성하면서 정해짐. 어떤 자료형이든 그거에 맞게 찍어 내고 싶을때유용함cmy a 템플릿클래스는 객체 생성 전까지는 클래스가 존재 하지 않는 것 헤더파일에 선언,정의 다 구현할 것 그래야 인식하고 필요한 자료형으로 바꿔서 분석할 수 있
(여러 식별자를 하나의 그룹으로)네임스페이스 ,구조체,클래스 ->네임스페이스 역할 가능Using namespace std와 같이 네임스페이스를 사용하겠다는 선언가능네임스페이스명::식별자Std::list와 같이도 사용 가능
이름 있는 객체를 복사하여 생성 됨생성자가 하나라도 있으면 기본 생성자, 기본 복사 생성자 생성xCTest b=3;1.CTest a=b 2.CTest c(b) 3.함수 매개변수 전달 할 때 위와 같이 디폴트 복사 발생시
루프 노드- 젤 높은 레벨에 달린노드 단말 노드 -자식이 없는 맨 마지막에 달린 노드각 층을 레벨이라 하고 , 1층 부터 내려간다.이진트리 자식개수가 2개 이하인 것 완전 이진트리 -자식을 2개로 채우면서 레벨 증가(배열로 구현)-힙에서 구현이진 탐색 트리이진 탐색:
상속부모(base),자식(derived) 관계Is a 관계를 나타낼 때 사용(derived는 base이다)public,private,protected 자식이 상속받은 거에 접근 정도를 지정상속받은 부분에 대한 것은 상속받은 상속자/소멸자가 동작한다생성자는 base-
동일한 함수 이름에도 매개변수의 타입,개수의 차이를 둬 함수의 구분을 두는 것void operator+=(Vec2 \_vOther){}void operator+=(float \_float){}상속 관계에 있어 base에서 먼저 정의한 함수를 동일한 이름을 사용해서 재정
1.상속 관계2.대입 연산자 오버로딩따라서 1번이 자연스럽게 가능부모는 자식객체를 참조 하거나 포인터로 가르킬수 있다부모가 자식 객체의 주소를 부모 포인터로 가르키거나 참조한다면 오직 자식 객체의 부모멤버들만 참조 할수 있다.프로그램을 구성하는 요소들의 속성을 결정정적