- 학습목표: C로 "hello, word" 를 출력하는 프로그램을 만들 수 있다.
- 핵심단어: stdio.h, clang, 컴파일러
- #include <stdio.h> 하지 않으면 printf() 함수 사용 X
- 컴파일러
- $ clang: 코드를 컴파일 해줌
- 파일 내용 수정 후 ./a.out 실행시 변경 전 내용 출력 (컴파일 하지 않았기 때문)
- $ clang 뒤에는 파일명만 적을 수 있는 것이 아닌 명령행 인자를 추가할 수 있음
10진법 | 2진법 | Description |
---|---|---|
2 | 010 | 0*4 + 1*2 + 0*1 |
3 | 011 | 0*4 + 1*2 + 1*1 |
4 | 100 | 1*4 + 0*2 + 0*1 |
8 | 1000 | 1*8 + 0*4 + 0*2 + 0*1 |
- 학습목표: C로 문자열을 가진 변수를 선언 및 출력하는 프로그램을 만들 수 있다.
- 핵심단어: 형식지정자, string, make
⨁ #include 하는 과정
: clang 을 통해 컴파일, 이는 컴퓨터가 include 하려는 파일을 사용자의 소스코드에 추가하고 명령어로 연결을 시켜 두 코드가 한 프로그램으로 실행될 수 있도록 함
ex) $ clang -o string string.c -lcs50
바로 위 설명에서 clang 을 사용하여 컴파일하는 과정보다 보다 간단하다.
ex) $ make string make 뒤에는 프로그램 이름 인자만 입력해야 함
위 예시를 실행하게 된다면 string.c 파일을 찾고 string 이름으로 머신코드를 output 한다(string*).
- 학습목표: 조건문과 루프를 C로 작성할 수 있다.
- 핵심단어: int, if, while, for
- ⊜: 할당 연산자
- type 선언은 한번만
- 구문설탕: 새로운 기능 추가X, 기존 기능을 더욱 보기 좋고 간결하게 활용할 수 있도록 해준다는 뜻
- c에서는 true 첫글자 소문자 가능 (Python은 True)
- for 구문: 인자 세개 (Java와 동일, 형태: (변수선언, boolean, 변수증감))
- 학습목표
- 다양한 데이터 타입과 형식지정자를 나타내는 방법을 학습한다.
- 다양한 연산자를 이용하여 조건문을 표현하는 방법을 학습한다.- 핵심단어: char, long, float, double, %, &&, ||
- cd (경로 설정), pwd (경로 확인)
- 학습목표: 사용자 정의 함수와 중첩루프를 작성할 수 있다.
- 핵심단어: 사용자 정의 함수, 중첩루프
- void (return 값 X) 선언하는 등 생성
- 위에서 아래로 왼쪽에서 오른쪽으로 순차적으로 작동하기 때문에 main을 사용자 정의 함수보다 아래에 둔다면 error 발생.
-- ⨁ main 위에 선언한다면 가능 ex) void cough(void);
- do-while 루프: boolean → 수행
- 학습목표: 메모리 용량이 프로그램의 구동에 미치는 영향을 설명할 수 있다.
- 핵심단어: 메모리, 오버플로우
-- 메모리 저장공간이 유한하다면 컴퓨터는 특정 지점에서 한계에 부딪힌다. float 은 32bit 를 사용하고 double은 64bit 를 사용하므로 보다 정확한 계산이 가능하지만 이 또한 완벽하지 않다. 왜냐하면 결국 저장할 수 있는 정보는 유한하기 때문이다.
-- 따라서 컴퓨터는 계산할 수 있는 값들 중 원하는 값과 가장 가까운 값을 저장한다. ex) 1 나누기 10을 한다면 0.1(1/10)에 가까운 값을 저장
-- overflow를 예시와 함께 설명한다면, 10진법인 세자리 숫자가 있을 때 1을 더하다보면 999가 되고 일 때 1을 더해주면 1,000 이ehlsek. 하지만 세자리 까지의 숫자만 저장할 수 있는 메모리 공간이라면 000만 남게 된다. 2진법도 같음
-- 이 설명은 Y2K 와 보잉 787 사례를 안다면 더 쉽게 이해할 수 있다.