이미 배운 내용에 대해 어디까지 알고 있는지 간단한 질문을 통해 알아봄.
- 개발 도구 소개
- IDE
VisualStudio c++ : 완벽하게 c를 포함하지는 않는다.
text editor : 기타등등...(emacs..)
- Computer
- C language를 배우기 전에 computer를 알아야 한다.
- 계산기 :
(기계식) 주판->라이프니치->해석기관(최초의 컴퓨터)->Ada Lovelace(최초의 프로그래머, 최초로 구조문을 이용)
(진공관) ->진공관(에디슨)->트렌지스터->IC회로->논리 회로->Boolean Algebra
- Boolean Algebra
- 다이오드의 전류가 한방향으로 흐르는 성질, 0 아니면 1
- A에는 0과 1이 포함되었을 때 AND, OR, NOT, NAND, NOR, XOR논리
- ALU : 산술논리장치, CPU내에 탑재됨(ALU+Memory=컴퓨터)
- CPU는 덧셈만 한다. Memory에는 program, instruction
이때 인서형 출현, variable등이 저장됨
- 기계어
- Assembly Language
- 알아듣기 힘든 기계어를 단어에 일대일 대응시켜서 만듦, 여전히 어려움
- High-Level-Language
- Operation System
- CPU에서는 여전히 0과 1로 연산이 이루어진다. 그래서 컴퓨터를 더 잘 쓸 수 있게 해주는 것이 OS
- Windows, Unix(C언어로 만들어짐), Linux, Mac, Android, iOS
- 여전히 프로그램이기 때문에 언어가 필요하다.
10분 쉬기
- C언어
- (위키 참고) : 범용 언어(특정 목적에 국한되지 않는다), 순차적이다(순차적으로 이루어진다, 선언적과 반대), 구조적이다(함수를 지원한다)
- 그렇게 고급 언어는 아님(운영체제를 만들기 위해 만들어졌기 때문), 메모리에 직접 접근할 수 있기 때문에
악명높은포인터가 나옴
- 속도가 빠르다, 이식성이 높다(JAVA만큼은 아니지만)
- main함수 내에서
- a+b등을 expression, ;이 찍히는 부분을 statement, 제어문, 선언문 (중괄호로 묶여있는 것들)등을 block 라고 지칭한다.
- 어떤 함수 안에서 scope가
경비아저씨 출현 인서형 다시 출현
- 어떤 함수 안에서 변수가 지정되면 local,
잘 못들었어요 죄송합니다...
- 연산자
- 변수 : Data Type(int, long, long long, float, double, void, struct, union, ...)(모든 타입이 포인터와 배열을 가지고 있고, 상수 타입일 수도 있다), type of variable(automatic, static, ...), const(*와 엮이면 무시무시해짐)
- automatic(+, -, *, /, %), logic(&&, ||, !), comparison(>, >=, <, <=, ==),
compositional assign, bit logic, shift
- 다항연산자(++a, a++), 단항연산자(-a, +a), 삼항연산자
- &a, *a, a5
- sizeof(int)
- (int), (double)
- 기타 자잘한 것들...
- 제어문, 제어흐름
- if-else, switch, while, dowhile, goto, break, continue, for
- 함수
- 배열과 포인터
- 포인터는 주소의 값이 저장된 변수이다 배열은 어떤 주소의 값이다.
- 구조체
이게 다 끝나면
- 전처리기 : #include, #define, macro function, #if, ...
- 표준 입출력(Standard I/O) : printf, scanf, putchar, getchar, ...
- file I/O
- 표준 스트링 함수
여기까지 하면 괜찮을 듯