(C# : Basic) 1. 변수에 대하여

Posted by : at

Category : CSharp


프로젝트 생성

.NET 콘솔 앱 생성


정수 형식

// 주석
/* 주석 */

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            byte _byte = 100;   // 1바이트
            short _short = 100; // 2바이트
            int hp = 100;       // 4바이트
            long _long = 100;   // 8바이트

            float _f = 3.0f;    // 4바이트
            double _d = 3.0f;   // 8바이트

            const int hp2 = 100;    // const로 상수화 가능

            Console.WriteLine("int : {0}", hp);
        }
    }
}

불리언 소수, 문자, 문자열

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            /* 불리언 */
            bool b;     // bool
            // bool 은 1바이트인데 true, fale만 표현하는데 왜 1바이트를 쓸까?
            // 컴퓨터가 처리할때 오히려 1바이트를 쓰는게 유리하다

            /* 소수 */
            float f;    // 4 바이트
            double d;   // 8 바이트
            f = 3.14f;
            d = 3.14;

            /* 문자 */
            char c;     // 2 바이트
            c = '가';

            /* 문자열 */
            string s;
            s = "Hello World!";
        }
    }
}

형식변환

int a = 1000;
short b = a;            // Error : 암시적 형변환 불가
short b = (short)a;     // okay
byte c = 255;
sbyte sb = c;           // Error
sbyte sb = (sbyte)c;    // -1
// 0xFF = 0b11111111 == -1
float f = 3.1414f;
double d = f;

비트연산

int num = 1;
num = num << 1;

Console.WriteLine(num);         // 2

/*
& (AND)
| (OR)
^ (XOR)
~ (NOT)
*/

var

컴파일러에게 자료형선언을 넘긴다.

var a = 10;         // int
var s = "Hello";    // string
var b = false;      // bool

ArraySegment

int[] ary1 = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

// 복사하지 않고 ary1의 특정위치를 참조(마치 포인터 처럼)
ArraySegment<int> argSeg = new ArraySegment<int>(ary1, 2, 5);

// 출력해보기
for(int i = arySeg.Offset; i < arySeg.Offset + arySeg.Count; i++)
{
    Console.WriteLine("{0}:{1}", i, arySeg.Array[i]);
}

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links