티스토리 뷰

이번 포스팅에서는 Chapter 5에 나오는 내용들을 다뤄보려고 한다!

 

변수의 6가지 속성

1) names

2) address

3) value

4) type

5) lifetime

6) scope

 

1) names

  • 대소문자를 가리는가? (Case Sensitivity)
    • C 기반 언어들에서는 대소문자를 가리는데, Readability & Writability 가 안좋아 진다. 
  • 특수어
    • keyword: 특정 문맥에서만 특수 의미를 가짐. ( ex: 변수 이름 )
    • reserved word: 사용자 정의 이름으로 사용 불가능 ( ex: int, float, ... )
      • 예약어가 너무 많은 언어는 쓰기 힘들다 ( ex: COBOL의 length, bottom, count 등 )  
  • 길이
    • 너무 짧으면 함축적일수가 없다!
      • C99: 길이 제한이 없지만 처음 63개까지만 의미를 갖는다. 그 이후의 글자들은 구분의 기능을 못 갖는다. 
      • C++: 제한이 없긴 하지만 구현자는 제한 있음 (?)
      • C#, Java: 아예 제한 없음
  • 특수 문자
    • PHP: 모든 변수는 $로 시작한다. 
    • Perl: string은 $, array는 @, hash는 %로 시작한다.
    • Ruby: 지역변수는 밑줄이나 소문자, class는 @@, instance는 @, 전역변수는 $로 시작한다.
  • 익명 변수도 존재한다. (ex: heap-dynamic var)

 

Concept of Binding

Binding Time

  •  

Static, Dynamic Binding

  • Static: 실행 시간 전에 binding되고, 프로그램 실행 내내 변동이 없을 때. ( ex: static 변수)
  • Dynamic: 실행 시간에 binding되고, 프로그램 실행 도중 변동 가능 할 때. (ex: 지역 변수)

Static, Dynamic Type Binding

 

변수들의 lifetime에 의한 분류

  •  Static Variable ( 정적 변수)
    • 실행 전에 memory에 할당 되고, 같은 메모리에 실행 내내 할당되어 있음
    • ex) C, C++ 의 static 변수
  • Stack-Dynamic Variable
    • 실행이 선언과 연관된 코드에 도달했을 때 memory에 할당 된다. 
    • ex) C언어의 일반 변수
  • Explicit Heap-Dynamic Variable
    • 포인터로 할당, 해제된다. 
  • Implicit Heap-Dynamic Variable
    • 변수에 값이 할당될 때만! (선언 때는 X)

이름 상수

float pi = 3.141592f;

const 붙여서 이름 상수로 쓸 수 있다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함