[📌목차]
자바스크립트는 동작 원리를 이해하기 어려운 구조이므로
어차피 언어의 동작 원리는 거의 똑같으므로
C언어로 동작 원리를 이해하는 방식으로 진행함
인터프리터 언어 : 자바스크립트
컴파일 언어 : c , 타입스크립트
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
C언어의 기본 구성 요소는 함수 (리액트의 컴포넌트)
변경이 가능한 수
컴퓨터는 데이터를 메모리에 저장하게 되는데
메모리를 찾기 위해 주소값을 기억하는 것보다 의미있는 이름에 담아서 관리하기 시작!!
-> 이게 변수
메모리 영역
콜스택 메모리 적용
void Test(int a){
char b = 'A';
int c = 1;
double d = 3.14;
}
d c b a (순으로 메모리 스택이 쌓임)
왜냐면 위에서 아래로 코드가 진행되는데 스택은 LIFO 구조니깐
콜스택 , 메모리 힙의 데이터 저장 구조
| 스택 메모리 | 힙 메모리 | |
|---|---|---|
| 값 : 10 , 0x100 | [1,2,3] , {name :'bodoy', age : 20} |
선언한 변수가 얼마나, 어떻게 값을 할당할 것인지 결정하는 것
정수형 변수 선언
int main(){
int w = 10;
int h = 10;
printf("사각형의 넓이는 %d", w * h);
// 사각형의 넓이는 100
}
실수형 변수 선언
int main(){
double w;
int r = 5;
w = r * r * 3.14
printf("원의 넓이는 %f", w);
// 원의 넓이는 78.500000
}
문자형 변수 선언
int main(){
char ch1 = 'A';
printf("%d %c", ch1 , ch1);
// 65 A
}
상수
변하지 않는 수
int main(){
const int ten = 10;
ten = 20
printf("%d", ten);
// 오류 상수(const)라 변하지 않음
}
int main(){
int input = 0;
char input2;
scanf("%d", &input);
scanf("%c", &input2);
printf("%d", input * 5 , input2);
}