C#/C#기초

1.변수와 상수 그리고 데이터형식

공부를하자 2023. 5. 5. 16:00
변수 : 값이 정해지지 않은

상수 : 변하지 않는

C# 사용하는 메모리 형식

 

1.스택(Stack)

  • 데이터를  쌓아 올리는 구조(책처럼)
  • 나중에 쌓인 데이터를 먼저 제거 처음 쌓인 데이터를  나중에 제거(후입선출)
  • 쌓인 순서의 역순으로 필요없는 데이터를 자동제거

 

2.(Heap)

  • 자유롭게 사용하는 저장 메모리
  • 자유저장소라 불림

 

1) 형식(value)

 -메모리에 값을 담는 형식

  -스택에 할당

 -기본데이터 형식과 구조체가 해당

2)참조(Referce) 형식

-메모리에 다른변수의 주소를 담음

-힙에 할당(가비지컬렉터가 자동으로 제거)

 -복합데이터 형식과 클래스가 여기에 해당

 

 

데이터 형식(DataTypes)

정의 : 데이터의 유형 크기 뜻함

  • 1.기본 데이터형식

  • -부동 소수형식

 

 

  • 2.복합 데이터 형식

      -클래스

      -구조체

      -인터페이스

  • 3. 논리 형식

       - bool :   참 또는 거짓을 다루는 데이터

 

 

  • 4.열거형식(Enumerated Type)

     -하나의 이름 아래 묶은 상수들의

     -enum  키워드를 이용하여 선언

  • 5.var 형식

     -var 형식으로 사용한 값은 컴파일러가 리터럴(변수의 값이 변하지 않는 데이터) 분석하여 자동으로  형식을 추론         해주는 형식

   - 지역 변수에 대해서만 사용가능

 

  • 6.object 형식

      -상속으로 어떤 데이터든 다룰 수있는 형식

      -C# 모든 데이터형식이 object형식을 받을 있도록 되어 있다.

      -모든 데이터형식은 object 타입의 자식이다.

 

-박싱: 형식을 object 형식에 담아 형식 힙에 올리는

 

-언박싱 : 힙에 올라간 데이터를 object 꺼내 형식으로 옮기는것.

 

  • 7.Nullable
    -
    비어있는 상태가 될수 있는 형식
     -데이터형식 ? 변수이름형태로 작성
         ex) int? a = null;

       - 형식만 가능, 참조는 불가능

       -HasValue(값을 가지고 있는지)  Value( 자체) 속성을 가진다.

         -ex)int a? = null;

               a= 37;

              Console.WriteLine(a.Value);  37출력

              Console.WriteLine(a.HasValue); true 출력

 

 

'C# > C#기초' 카테고리의 다른 글

6.인터페이스와 추상클래스  (0) 2023.05.13
5. 클래스와 객체지향 프로그래밍  (0) 2023.05.11
4. 메소드 간추리기  (0) 2023.05.09
3.코드의 흐름제어  (0) 2023.05.08
2.데이터 가공 연산자  (0) 2023.05.06