[10주차 05] 컴파일 기반 언어의 프로그래밍 동작 원리

개발냥이·2025년 3월 28일

데브코스

목록 보기
33/75
post-thumbnail

프로그래밍 기본 원리

[📌목차]


컴파일 기반 언어 이해하기!!

자바스크립트는 동작 원리를 이해하기 어려운 구조이므로

어차피 언어의 동작 원리는 거의 똑같으므로

C언어로 동작 원리를 이해하는 방식으로 진행함

  • 인터프리터 언어 : 자바스크립트

  • 컴파일 언어 : 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)라 변하지 않음
}
  • scanf : 사용자에게 데이터를 입력받기!!
int main(){
    int input = 0;
    char input2;
    scanf("%d", &input);
    scanf("%c", &input2);
    printf("%d", input * 5 , input2);
}
profile
웹 개발자가 되고픈

0개의 댓글