Fear is a habit. I'm not afraid.
This is CS50 (2) C 본문
목차
(1) C
- 다룰 개념은 함수와 조건, 불리언 표현과 루프를 이용하는 것!

#include <stdio.h>
int main(void)
{
printf("hello, world\n");
}
1. 초록색 깃발이 클릭되면 main을 실행합니다.
- f는 형식화된 형태를 의미합니다.
- C: 텍스트 기반 언어
- 프로그래밍 환경에는 두가지 구성요소가 있다.
1. 코드를 작성하는 부분 where i write my actual code
2. 터미널 terminal window
- 일종의 옛날 인터페이스
- 프롬프트에 입력하고 엔터를 치면 코드를 실행 run command 할 수 있다.
- 대부분의 초기 프로그래밍 언어들은 명령어 입력 방식을 사용함
- #include<stdio.h> 가 필요한 이유: 없으면 printf를 인식하지 못함.
- 코드는 컴퓨터가 인식하지 못한다. 이런 코드를 컴퓨터가 이해할 수 있도록 0과 1로 번역하려면 중간 단계가 필요하다.
- source code -> [ ] -> machine code (object code)
- 소스코드로부터 머신코드를 얻기 위해서는 이러한 번역을 수행하는 알고리즘 혹은 소프트웨어가 필요하다 = 컴파일러
- 터미널에 $가 깜빡거린다. -> clang을 입력 (=코드를 컴파일하는 프로그램의 이름)
=> a.out이라는 머신코드가 생성된다.
=> ./a.out
=> 터미널에 ls를 입력했을 때 파일명 뒤에 *가 있다는 것은 머신코드, 즉 실행할 수 있다는 것을 의미한다.
참고) 왜 저는 줄바꿈 할때 \(백슬래시)가 ₩(원화)로 보이는 것이죠?
-> 해당 문제는 '한글 윈도우' 운영체제에서만 생기는 현상입니다.
한글 윈도우에서는 \를 ₩로 표시를 해주기 때문입니다. 따라서 ₩로 표시가 되어도 문제 없습니다.
2) 문자열
- 쌍따옴표 안에 들어간 0개 이상의 문자 배열
- 변수를 담을 때, 변수가 저장하는 데이터의 종류를 아주 정확하게 명시해줘야 합니다. (what type of value)
- 형식지정자 placeholder 를 선언해줘야 함
- 라이브러리를 사용할 땐 두가지를 명심해야 한다.
1. 소스코드에서는 컴퓨터에게 라이브러리를 추가하라고 해야 함.
= 두 코드가 한 프로그램으로 실행될 수 있도록 컴퓨터에게 라이브러리를 소스코드에 추가하도록 해야 함.
- terminal
make {program_name}
-> 프로그램을 만드는 명령어, 리눅스 운영체제에 있는 프로그램으로 Window나 Mac에도 있음.
4) 자료형, 형식 지정자, 연산자
데이터 타입
- bool: 불리언 표현, (예) True, False, 1, 0, yes, no
- char: 문자 하나 (예) 'a', 'Z', '?'
- string: 문자열
- int: 특정 크기 또는 특정 비트까지의 정수 (예) 5, 28, -3, 0
- long: 더 큰 크기의 정수
- float: 부동소수점을 갖는 실수 (예) 3.14, 0.0, -28.56
- double: 부동소수점을 포함한 더 큰 실수
형식 지정자
printf 함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있습니다.
- %c : char
- %f : float, double
- %i : int
- %li : long
- %s : string
* 소수 floating point
C언어에서 형식 지정자를 %f로만 지정했을 때 소숫점이 6자리가 나오는 이유?
=> %f 에 대한 기본 자릿수가 6이기 때문이다. 6 digits of percision
5) 사용자 정의 함수, 중첩 루프
parity: 홀수 odd 인지 짝수 even 인지 확인해주는 프로그램
#include <stdio.h>
int cough(int n); // 이와 같이 main 함수 위에 함수를 명시해놓으면 사용할 수 있다.
int main(void)
{
cough(3);
}
int cough(int n)
{
for(int = 0; i < 3; i++)
{
printf("cough\n");
}
}
세부정의 implementation details
'basic' 카테고리의 다른 글
This is CS50 (4) Algorithms (0) | 2024.06.06 |
---|---|
This is CS50 (3) Arrays (0) | 2024.06.03 |
심화-캐리와 오버플로우의 차이점 (1) | 2024.05.30 |
This is CS 50 (1) Computational Thinking, Scratch (0) | 2024.05.28 |
OAuth 2.0 에 관하여 (0) | 2024.05.20 |