0 들어가기
0-1 과정 소개



1 프로그래밍의 기본 원리
1-1 프로그래밍 개념과 원리 / 프로그램 개발 과정
1-1-1 왜 컴파일 언어를 이해해야 하는가

- c언어는 컴파일 언어, js는 인터프리터 언어
- 타입스크립트는 js에 자동으로 타입을 붙여주며 타입이 기본으로 붙어있는 컴파일 언어를 이해하면 이해가 쉬울 것
1-1-2 프로그래밍의 개념

- 프로그래밍이란? 어느 하나의 서비스를 만드는 것


- 컴퓨터의 언어는 이진수(0,1), 즉 기계어이다. 결국 c언어와 js는 사람의 언어이다.
우리가 프로그램을 쉽게 하기 위해 쓰는 언어를 기계어로 바꾸는 과정을 컴파일이라고 한다.


- 컴파일과 링크를 한번에 하는 것을 빌드 과정이라고 함
1-1-3 내 생애 최초 C언어로 Hello World 출력하기

- hello world는 개발자들에게 meme임

#include <stdio.h>
int main()
{
printf("Hello World");
return 0;
}
- 함수는 입력값과 특정 산식을 가진 형태이며 프로그래밍에서도 유사함



- 엄격한 문법을 쓰는 이유는 잠재적 오류를 사전에 차단하기 위해서임
- c언어에서 ;를 생략하면 컴파일에서 에러가 발생함
- 자바스크립트는 한줄씩 해석하기 때문에 에러가 안남

1-2 변수와 자료형 / 연산자
1-2-1 변수와 자료형 1


- 변수란 특정 값을 지속적으로 사용하기 위해 네이밍을 쉽게 해준 것

- 스택 메모리는 데이터를 쌓아가는 형태이므로 최신 데이터일수록 먼저 찾음(first in, last out)
- 힙 영역은 Q라고도 하며 먼저들어온 순대로 나가게 됨(first in, first out)

- 지역변수는 지역을 벗어나면 소멸하게 되고 소멸 순서는 d, c, b, a 순으로 소멸하게 됨





1-2-2 변수와 자료형 2

- 변수 선언 시 어떤 용도로 사용할 것인지 결정을 해야 공간을 결정함


- 실습을 해보자면 int는 정수가 들어가야 하는데 소수점을 사용하게 되면 에러가 발생함
#include <stdio.h>
int main()
{
int width = 10;
int height = 20;
printf("사각형은 %d", width * height);
return 0;
}
#include <stdio.h>
int main()
{
double area;
int r = 5;
area = r * r * 3.14;
printf("원은 %f", area);
return 0;
}


- 테스트를 해보면 10진수와 문자열로 나오는 것을 볼 수 있다.
#include <stdio.h>
int main()
{
char ch1 = 'a';
printf("%d, %c", ch1, ch1);
return 0;
}
1-2-3 상수에 관하여
- 상수도 메모리 값을 가지고 있지만 그 값은 변경하지 못 한다.


- 아래 코드는 에러가 안날 거 같지만 에러가 난다 왜일까? 가비지 값이 들어가 있기 때문에 const를 사용하지 못 하는 것이라 함,,,
#include <stdio.h>
int main()
{
const int TEN;
TEN = 20;
return 0;
}
1-2-4 사용자로부터 데이터 입력


- scanf 함수 설명:
- scanf는 표준 입력(주로 키보드)에서 데이터를 읽어오는 함수입니다.
- 사용 형식은 scanf("형식 지정자", &변수);입니다.
- "형식 지정자": 입력할 데이터의 형식을 지정하는 부분입니다. 여기서는 %d가 사용되었는데, %d는 정수를 의미합니다.
- &변수: 입력받은 데이터를 저장할 변수의 주소를 넘겨줍니다. &는 변수의 메모리 주소를 나타내는 연산자입니다.
int main()
{
int input = 0;
scanf("%d", &input);
printf("input : %d", input);
return 0;
}