티스토리 뷰

복습/1개월차

2016/03/27 - 1개월차 총정리

애니멀14 2016. 3. 27. 19:34

1. 번역 과정.

1. 전처리기.[각주:1]

2. 컴파일러.[각주:2]

3. 어셈블러.[각주:3]

4. 링커.[각주:4]

 

2. 네임 스페이스.

3. 이스케이프 문자열.

4. 단축키.

1. Ctrl + K + C.        //주석 처리.

2. Ctrl + K + U.        //주석 해제.

3. Alt + 드래그.        //행 드래그.

4. F4.        //에러가 발생한 코드라인으로 이동.

5. F9.        //중지점.

6. Ctrl + Z.        //EOF.

7. Ctrl + C.        //종료.

 

5. 삼각 함수.

1. 사이각 또는 회전각.

2. 반사벡터.

1. 반사벡터의 유도.

2. 반사벡터 구하기.

3. 법선벡터.

 

선언(declaration) : 어떤 대상의 이름과 타입을 컴파일러에게 알림.

정의(definition) : 선언에서 빠진 구체적인 세부 사항을 컴파일러에게 제공.

초기화(initialization) : 객체에 최초의 값을 부여하는 과정.

 

함수 선언. 

void Function();

함수 정의.

#include "Header.h"

void Function()
{
	return;

}

 

비트 : 컴퓨터가 사용하는 최소 단위.

바이트 : 메모리가 사용하는 최소 단위.

 

6. 사용자 정의 자료형.

1. 공용체.[각주:5]

1. 가장 큰 크기를 가진 기본 자료형을 기준으로 멤버 변수들의 메모리가 할당.

2. 멤버 변수들이 할당된 메모리를 공유.

2. 구조체.[각주:6]

1. 가장 큰 크기를 가진 기본 자료형을 기준으로 멤버 변수들의 메모리가 할당.

2. 단, 사용자 정의 자료형은 자신의 크기로 할당.

3. C.

1. 멤버 함수 사용 불가.

2. 멤버 변수의 struct키워드 생략 불가.

4. C++.

1. 멤버 함수 사용 가능.

2. 멤버 변수의 struct키워드 생략 가능.

3. 열거체.

4. 클래스.

 

7. 아스키 코드.

8. 연산자.

1. 대입 연산자.

1. 오른쪽에서 왼쪽으로 대입.

2. 논리 연산자.

1. or연산자는 전자가 참이면, 후자는 생략.

3. 비트 단위 연산자.

1. not연산자는 부호 비트를 고려.

2. bitset함수.

4. 시프트 연산자.

1. <<연산자는 부호 비트를 고려.

5. 증감 연산자.

6. 연산자 축약형.

 

9. 헝가리언 표기법.

10. 분기문.

1. goto문.

2. switch문.

1. 라벨링은 상수만 허용 가능.

2. 상수화.

1. 전처리기.

1. 빠르지만 컴파일 타임에 에러 탐지가 불가.

2. 코드 비대화.

2. const키워드.

1. 반드시 선언과 초기화를 동시에 진행.

3. 열거체.

3. if문.

 

11. 반복문.

1. while문.

1. 무한 루프속에서 탈출문을 작성하는 용도로 사용.

2. do while문.

3. for문.

1. 구성.

1. 초기화식.

2. 조건식.

3. 증감식.

4. 구현부.

2. 순서.

1. 1->2->4->3.

3. 기타.

1. 반복문 안에 변수를 선언.

2. 반복문 밖에 변수를 선언.

3. 밖에 변수를 선언하는 것이 안에 변수를 선언하는 것보다 빠름.

 

12. 포인터.

1. 크기.

1. 포인터의 크기는 4바이트.

2. 주소 값의 증감은 주소 값의 이동을 의미.

3. 주소 값의 이동은 자료형의 크기만큼 이동.

4. 포인터 변수.

5. 2중 포인터.

1. 2차원 배열과 동일한 구조.

6. ->

 

13. &.

1. 비트 AND 연산자.

2. 주소 연산자.

3. 참조자.

 

14. 배열.

1. 연속된 메모리에 할당.

2. 같은 자료형을 반복하여 사용.

3. 배열의 이름은 배열의 주소 값.

4. 0으로 초기화.

5. 포인터 상수.[각주:7]

6. 2차원 배열.

int nArr[2][3];
nArr[0][1] = 0;		//nArr[0][1] == nArrA[1].
nArr[1][1] = 0;		//nArr[1][1] == nArrB[1]. 

 

7. 상수 인덱스.

const int index = 10;

int nArr[index] = {};

 

15. 문자열.

1. char 변수[].

2. char* 변수.

3. 문자열 함수.

1. strcpy함수 - 바이트 단위 복사.

2. strlen함수 - 널 문자 생략.

 

16. 문자열 함수.

17. 메모리 영역.

1. 코드 영역.

2. 데이터 영역.[각주:8]

3. 힙 영역.[각주:9]

4. 스택 영역. [각주:10]

 

18. 메모리.

1. CPU.

1. ALU.

2. 버스 인터페이스.

3. 콘트롤 유닛.

4. 레지스터.

2. 레지스터.

1. Fetch, Decode, Execute를 통해 2진수를 연산.

1. Fetch.

2. Decode.

3. Execute.

2. cpu내 8개 이상 존재.

3. 캐시.

4. RAM.

1. 코드 영역.

1. OS가 관리하는 영역.

2. 실행가능한 모든 코드가 저장되는 공간.

2. 데이터 영역.

1. BSS 영역.[각주:11]

2. 사용자가 관리하는 영역.

3. 전역 변수 및 정적 변수, 구조체 이름이 저장되는 공간.

4. 할당 : 컴파일 타임.

5. 해제 : 프로그램 종료.

3. 힙 영역.

1. 사용자가 관리하는 영역.

2. 동적으로 할당되는 객체가 저장되는 공간.

3. 할당 : 런 타임.

4. 해제 : 런 타임.

4. 스택 영역.

1. 사용자가 관리하는 영역.

2. 지역 변수 및 매개 변수, 임시 변수가 저장되는 공간.

3. 할당 : 컴파일 타임.

4. 해제 : 함수 종료.

5. HDD.

6. 기타.

int nTemp = 10;
int* pTemp = &nTemp;

*pTemp = 10;	//힙 영역.
pTemp++;		//스택 영역.

 

 

19. 함수.

1. 디폴트 매개 변수.

1. 오른쪽에서 왼쪽으로.

2. 선언부에서 사용 가능하나 구현(정의)부에서는 사용 불가.

2. 오버로딩. - 함수 중복.

3. 오버라이딩. - 함수 재정의.

 

20. 메모리 관리 함수.

1. memset.[각주:12]

 

21. typedef키워드. 

22. 동적 할당.

1. malloc함수와 calloc함수의 차이점.

1. malloc함수는 쓰레기 값으로 초기화.

2. calloc함수는 0으로 초기화.

2. malloc함수와 free함수.

3. new와 delete.

4. C.

1. 형 변환 생략 가능.

	int* nTemp = (int*)malloc();	//가능.
	int* nTemp = malloc();			//생략 가능.

5. C++.

1. 형 변환 생략 불가능.

	int* nTemp = (int*)malloc();	//가능.
	int* nTemp = malloc();			//생략 불가능.

6. 댕글린 포인터.[각주:13]

 

26. 기타.

1. 좌측에 상수가 들어가는 것이 좋은 습관.

if (2 == nInput)

 

27. 함수 매크로.

1. 장점.

1. 속도가 빠르고 모든 자료형을 허용.

2. 단점.

1. 컴파일 타임에 에러 탐지가 불가능하고 코드가 비대화.

3. 기타.

1. 기본적으로 한 줄만 인식.

2. \를 마지막에 삽입하면 다음 줄을 같은 줄로 인식.

3. 마지막 줄은 삽입하지 않는다.

4. 공백을 인식할 수 있기 때문에 \뒤에 공백을 삭제.

 

28. 콘솔 입출력.

1. 표준 스트림 함수.

2. 출력함수.

1. 스트림 이용x.

1. putchar().

2. puts().[각주:14]

2. 스트림 이용o.

1. fputc().

2. fputs().

3. 입력함수.

1. 스트림 이용x.

1. getchar().

2. gets().

2. 스트림 이용o.

1. fgetc().

2. fgets().

3. 기타함수.

1. fflush().[각주:15]

 

29. 파일 입출력.

1. 데이터 접근 모드.

2. 파일 접근 모드.

1. 라인 피드.

2. 캐리지 리턴.

3. 블록 단위 데이터 전용 함수.

 

 

  1. 전처리기란? C 및 C++ 파일이 컴파일러로 전달되기 전에 해당 파일에 대한 준비 작업을 수행합니다. [본문으로]
  2. 컴파일러란? 전처리기를 거친 원시 코드를 어셈블리 코드로 번역한다. [본문으로]
  3. 어셈블러란? 컴파일을 거친 어셈블리 코드를 이진 코드로 번역한다. [본문으로]
  4. 링커란? 어셈블러를 거친 이진 코드를 하나로 묶어 실행 파일로 변환한다. [본문으로]
  5. 공용체란? 구조체와 동일한 구문 형식을 따르지만, 멤버 변수 중 가장 큰 타입을 기준으로 잡고 멤버 변수들이 메모리를 공유한다. [본문으로]
  6. 구조체란? 서로 다른 타입의 자료를 표현한다. [본문으로]
  7. 포인터 상수란? 포인터 상수가 가리키는 주소 값은 고정이지만, 주소 값이 가리키는 대상(값)은 바뀔 수 있다. [본문으로]
  8. 데이터 영역이란? 전역 변수나 static변수가 할당되는 공간이다. [본문으로]
  9. 힙 영역이란? 동적으로 메모리를 할당할 때 사용한다. [본문으로]
  10. 스택 영역이란? 함수 호출 시 생성되는 지역 변수나 매개 변수가 저장되는 영역이다. [본문으로]
  11. BSS영역이란? 전역 변수가 초기화 되지 않으면, 0으로 초기화하고 데이터 영역으로 전달한다. [본문으로]
  12. memset()이란? malloc() 이나 calloc() 에서 할당 받은 메모리를 특정 값으로 초기화한다. [본문으로]
  13. 댕글린 포인터란? 유효한 객체를 가리키고 있지 않는 포인터를 말한다. [본문으로]
  14. 문자열만을 위한 함수이므로 printf나 cout보다 속도가 빠름. [본문으로]
  15. 입력버퍼를 강제로 비우거나 출력버퍼를 무조건 출력한다. [본문으로]

'복습 > 1개월차' 카테고리의 다른 글

2016/03/28  (0) 2016.03.28
2016/03/25  (0) 2016.03.25
2016/03/24  (0) 2016.03.24
2016/03/22  (0) 2016.03.22
2016/03/21  (0) 2016.03.21
댓글
공지사항