ddodoi 님의 블로그
10주차-파트03: 프로그래밍의 개념, C언어 실습 본문
CHAPTER 1. 프로그래밍의 개념
✔️프로그래밍
개발자가 소프트웨어를 개발하는 과정
🌱개발의 3단계 과정
구상 -> 설계 -> 구현
구상: 추상적
설계: 내 머릿속 추상적 내용을 문서화
구현: 설계된 걸 구현
🌱프로그래밍 언어란
사람과 컴퓨터 간의 통신 수단. 사람의 언어를 컴파일(사람의 언어를 컴퓨터가 이해할수 있는 언어로 바꿔줌)과정을 거쳐 기계어로 변환한다.
🌱프로그래밍 언어의 종류
- 저급언어(기계 중심) ex) 기계어, 어셈블리어
- 고급언어(인간 중심) ex) C언어, C++, 자바, 자바스크립트, C#, 기타등등..
🌱프로그래밍의 개념
설계 -> 원시코드 -> 컴파일 -> 링크
설계
- 머릿속으로 구상한 것을 기록
- 요리의 레시피를 만든다
원시코드 작성
- 머리속으로 구상한 것을 기록
- 요리의 레시피대로 요리
컴파일
- 원시코드는 사람이 이해하는 언어이지 컴퓨터 언어가 아님.
- 컴파일은 소스코드를 이진코드로 변환하는 과정, 즉 컴퓨터가 이해할 수 있는 언어로 변환
링크
- 실행파일을 만드는 과정
- 주변 라이브러리들에 링크 걸어줌
컴파일 + 링크 => "빌드" 과정이라고 보기도 함
CHAPTER 2. C언어 실습
https://www.onlinegdb.com/online_c_compiler
✔️C언어의 엄격한 문법
- 문장의 끝에 세미콜론(;)
컴파일 기반 언어는 문장을 마칠 때 반드시 세미콜론을 찍어주어야 한다. 왜냐하면 컴파일러는 세미콜론 단위로 문장을 해석하기 때문이다.
※ 자바스크립트는 인터프리터 기반 언어이기 때문에 세미콜론을 찍어주지 않아도 상관없다.
- 리턴값에 관하여
return 0;
함수의 수행이 끝남을 의미한다.
리턴값 0 자체는 의미가 없다.
- 주석문을 사용하자
주석문 사용 이유: 1) 어떤 단어나 문장에 대한 구체적인 부연 설명
2) 임시로 코드 수행 막음
// 주석이 짧은 문장일 경우
/*
주석이
긴 문장일
경우
*/
사용자로부터 데이터 입력
// 정수를 입력받아 x5한 값 출력
#include <stdio.h>
int main() {
int input = 0;
scanf_s("%d", &input);
int result = input * 5;
printf("result : %d", result);
return 0;
}
//문자열 한글자 입력받아(아스키코드 이용) 숫자로 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char c;
scanf("%c", &c);
printf("%d", c);
return 0;
}
CHAPTER 3. 변수
✔️변수
변수란 변경이 가능한 수를 의미한다. 변수에는 어떤 값이 들어갈 지 예측할 수 없다.
우리가 사용할 메모리 공간에 이름을 부여한 것이 변수이다. 주소값을 기억하기보다는 의미있는 이름을 기억하는 것이 쉡기 때문.
✔️메모리 영역
메모리에는 크게 코드영역, 스택 영역, 힙 영역, 데이터 영역 총 4가지로 구분
- 코드 영역 : 실행 명령어들 저장
- 스택 영역 : 지역변수 및 매개변수 저장 (stack구조 - LIFO)
- 힙 영역 : 프로그래머가 직접 할당(queue구조 - FIFO)
- 데이터 영역 : 전역변수, static 변수 저장
✔️콜스택 메모리의 적용
우리가 지금껏 사용한 지역변수 및 매개변수 등은 모두 스택 메모리를 사용
<원시 타입 데이터>
변수 a에는 10이 저장된 콜스택 메모리의 주소값이 저장.
원시 타입의 데이터 값은 콜스택에 저장되고, 데이터 값이 저장된 콜스택의 주소값은 변수 a에 저장된다.
재할당을 할 경우 본인의 메모리에 있는 값을 변경하는 것이 아니라 기존에 20을 저장하고 있는 메모리의 주소값을 교체한다.
<참조타입 데이터>
메모리 힙의 주소값이 저장된 콜스택의 주소값은 각각 b, c에 저장된다.
<가비지 컬렉터>
더이상 참조되지 않는 데이터는 가비지 컬렉터에 의해 적절한 시점에 메모리에서 해제한다.
CHAPTER 4. 자료형
효율적인 메모리 공간을 활용하기 위해 다양한 자료형을 사용한다.
문자형 사용하기
char ch1 ='A';
숫자만 인식하는 컴퓨터는 문자를 표현하기 위해 특정 숫자와 특정 문자를 대응 시키는 방법을 사용한다=> 아스키코드
CHAPTER 5. 상수
✅상수
변하지 않는 수. 메모리 공간에 수가 존재하지만 그 값을 변경할 수 없다.
const int TEN = 10;
변수 선언에 const기호를 붙여주면 상수화된다. 단 주의할 점은 선언과 동시에 초기화해야 한다.
'웹풀스택 일일정리' 카테고리의 다른 글
10주차-파트02: (0) | 2024.10.22 |
---|---|
10주차-파트01: 프론트엔드 ot, 개발자도구와 브라우저, js언어의 특징, 변수, 자료형, 연산자, 함수 (1) | 2024.10.21 |
9주차-파트04: (1) | 2024.10.21 |
9주차-파트03: (1) | 2024.10.18 |
9주차-파트02: (0) | 2024.10.15 |