변수

커비·2024년 10월 9일
0

컴퓨터공학

목록 보기
2/9
post-thumbnail

변수

📌 변수의 개념

프로그래밍에 사용되는 데이터를 기억하는 기억장소의 이름
데이터 생성, 중간결과 및 처리 결과를 기억함


📌 변수 작성

  1. 영문자(대, 소문자), 숫자, 제한된 특수문자로 구성됨
    C언어의 경우 앞에 언더바, 특수문자 사용 가능
  2. 첫 글자는 반드시 영문자 또는 제한된 특수문자를 사용해야 함
    🚨 숫자는 사용하면 안됨
  3. 예약어 사용 불가
  4. 변수명 내의 공백 인정 불가

📌 변수 종류

  • 데이터 종류의 따른 분류 : 정수, 실수, 문자 등
  • 기억장소의 형태에 따른 분류 : 단순변수, 첨자변수

📎 단순변수

한 개에 하나의 데이터만 저장

a=1;

📎 첨자변수

한 개의 변수에 여러개의 데이터 저장

int a[3];
a[0]=1;
a[1]=2;
a[2]=3;

📌 바인딩

  • 변수와 변수에 관련된 다양한 속성을 연결하는 과정
  • 변수가 메모리로 로딩 등 프로그램이 실제 실행 가능한 상태로 변환되는 것

📎 정적 바인딩

프로그램 실행시간 전에 연결되는 것

📎 동적 바인딩

프로그램 실행시간에 연결되는 것

📎 언어정의시간 (언어설계시간)

언어에서 허용되는 대부분의 자료구조, 프로그램구조를 확정하는 시간
언어의 정의 ➡️ int test;

📎 언어구현시간

언어에 대한 각 원소들의 특징을 확정하도록 하는 것
정수에 자릿수나 실수의 유효개수들을 언어구현시간에 확정하게 됨
언어에 대한 번역기 구현 ➡️ int의 범위 등

📎 번역(컴파일)시간

정적 바인딩이 이루어지는 시간이며 변수의 이름 또는 형, 프로그램 문자구조가 확정이 되는 시간
원시 프로그램 번역 ➡️ int test (test에 int형을 바인딩)

📎 링크시간

프로그램을 라이브러리와 링크 ➡️ 라이브러리 부 프로그램 호출

📎 적재시간

프로그램 실행을 위해 어떤 변수에 메모리 주소를 바인딩하는 시간
프로그램 실행을 위해 메모리로 적재 ➡️ 전역변수에 메모리 주소 바인딩 등

📎 실행시간

프로그램 실행 ➡️ test=10


📌 변수 선언

변수에 이름, 속성을 부여하는 것

📎 명시적 선언 (C, JAVA)

속성과 이름 부여
ex.
in C
int test

📎 묵시적 선언 (Fortran)

I ~ N으로 시작하면 정수타입, 그렇지 않으면 실수타입 (말 안해도 아는 것)
ex.
in Fortran
I, J, K ...


📌 변수 할당 (Allocation)

변수에 메모리 공간을 바인딩하는 작업

📎 기억장소 할당

메모리 공간 바인딩

📎 기억장소 회수

바인딩이 해제된 메모리 공간을 가용공간으로 회수하는 과정

📎 수명

변수가 특정 메모리 공간에 바인딩 되어 있는 시간

구분할당 시간사례
정적할당프로그램 실행 종료까지 유지전역변수, static
스택기반할당함수 종료까지 유지지역변수
동적할당Free시까지 유지malloc: 포인터로 참조 가능

profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글