수강기간 2021.01.18. ~ 01.22.
2주차. C언어
1. C언어
- 순수 텍스트 기반 언어
- int main(void) {} // 메인함수,
// 작성할 코드를 중괄호 안에 작성
- prinf("hello world\n"); // 프린트 함수, \n : 줄바꿈
// 문장이 끝나면 세미콜론
- #include <stdio.h> // 헤더파일, 표준입출력 라이브러리
2. 컴파일러
- 우리가 작성한 소스 코드를 2진수로 작성된 머신코드로 바꿔주는 프로그램
- 커맨드 : clang 파일명.c
- 컴파일된 파일 실행 커맨드 : ./파일명 (맨 앞 .은 현재 폴더를 의미)
1. 문자열
- 문자들의 집합
- get_string (cs50 샌드박스)
- char : 1바이트 문자
- %s = 문자열 형식의 형식지정자
1. 조건문
- 특정 코드가 특정 상황에서만 실행되도록 의사결정 하는 코드
- bool 연산식
- 조건분기 (if문, switch, 3항 연산자 등)
1. 데이터 타입
- bool : True/False, Yes/No, 1/0
- Char : 문자 하나 (1바이트)
- string : 문자열
- int : 특정 크기 또는 특정 비트까지의 정수 (eg. 5, 28, -3 등)
- float : 부동소수점을 갖는 실수(eg. 3.14, 0.0 등)
- double : 부동소수점을 포함한 더 큰 실수
2. 형식 지정자
- %c : char
- %f : float, double
- %i : int
- %li : long
- %s : string
3. 논리 연산자
+ : 더하기
- : 빼기
* : 곱하기
/ : 나누기
% : 나머지
&& : and
\\ : or
// : 주석
1. 함수 만들기
void cough(void) // void 함수명(void) : 기침 함수 만들기
{
printf("cough\n")
}
- 주의 : 새로운 함수를 만들고 나서 항상 제일 처음에 함수이름을 써 두어야
나중에 실행할 떄 오류가 나지 않음
#include <stdio.h>
void cough(void); // 미리 함수를 언급해야 나중에 해당 함수가 나와도 실행할 수 있음
int main(void)
{
for (int i = 0; i < 3; i++)
{
cough();
}
}
void cough(void)
{
printf("cough\n");
}
- 함수의 기본 형식(c언어) : 출력형식 함수이름(입력형식){}
2. 중첩 루프
- do while 문
RAM에는 유한한 크기의 비트만 저장할 수 있기 때문에 떄때로 부정확한 결과 나옴
1. 부동소수점 부정확성
2. 정수 오버플로우
따라서 다루고자 하는 데이터 값의 범위를 유의하여 프로그램을 작성하여야 함
디브리핑
파이썬으로도 문제를 풀 때 항상 얼마나 많은 메모리를 쓰는지, 얼마나 효율적인지 잘 생각하지 않고 문제를 풀곤 하였다. 이번 기회를 통해 내가 작성한 코드가 얼마나 메모리를 잡아먹는지 얼마나 효율적인지 생각해 봐야겠다는 생각이 들었다.