<데이터 타입>데이터 타입int, float, long, double, char, string

C#/과제 2019. 3. 23. 00:50

값형식

값형식의 변수에는 값이 포함되어 있습니다

int형식의 변수에는 부호가 있는 32비트 정수가 포함될 수 있습니다.

이는 개체(?)라고도 하는 형식 인스턴스(?)에 대한 참조를 포함하는 참조형식의 변수와 다릅니다.

모든 값형식은 System.VealuyeType에서 암시적으로 파생됩니다.


값형식에서는 NULL을 쓸수 없음.



(?)개체:클래스 또는 구조체의 정의는 형식이 수행할 수 있는 작업을 지정하는 청사진(설계도)이다.

프로그램에서는 class(클래스)또는 struct(구조체)를 통하여 많은 개체를 만들 수 있습니다.

c++에서 배운 객체=개체넹~


(?)인스턴스:개체를 인스턴스라고도 부른다고 한다.


출처 Docs


근데 독스가 뭘까?

(?)Docs:워드 프로세서//구글번역기





참조형식

참조형식은 변수에 데이터(개체)에 대한 참조(?)가 저장이 된다.

값형식은 값이 직접들어가는데, 참조형식은 참조가 저장이 된다.


참조형식에는 두가지 변수가 같은 개체를 참조할 수 있음!

변수에 대한 작업이 다른 변수에서 참조하는 개체에 영향을 미칠 수 있습니다.

값형식에는 각 변수의 데이터 사본이 들어있어서 못합니다.


사본이 들어있다..

Call of Value, Call of Adress방식을 말하는 건가?


값형식

숫자:int,long,float,double//float자꾸 flaot이라고 타이핑함

문자:char


int 10진, 16진, 2진리터럴을 할당함!

크기는 최대 32비트!

범위를 벗어나면 컴파일 오류가 발생해요!


ex)int a=2147483648 //최대 범위 넘어가면 하면 오류임



long int형이랑 비슷한 느낌인데 64비트임//범위가 짱 넓어짐 21억 넘는건 다 애 쓰면 됨

접미사로 l을 적음


float 부동소주점을 가진 실수형 변수, 접미사에 f를 적음

32비트의 공간!~6-9개 자릿수


double float형의 확장팩 접미사 d를 사용함!


char char형은 유니코드 문자를 사용하는 System.Char구조체의 인스턴스를 선언하는데 쓰임

16비트의 숫자값을 받아서 문자로 표현할 수 있음!

문자 한 개를 받음 값의 양옆에 '' 따옴표를 사용하여 변수에 입력함


참조형식

string.. 너무 졸립다 내일 이어서할랭


string은 0자 이상의 유니코드문자 시퀸스(?)

String의 별칭으로 string을 사용함

참조형식이지만 (==, !=)요고는 개체의 값을 비교하도록 정의됨

문자열이 같은지 비교할 수 있음

string a = "Hello";

stirng b = "H";

b+= "ello";

Console.WriteLine((object)a==(object)b);

하면 true false 값을 표기한다캄( 옹 신기해 )// 예제만들때 꼭 해볼 것

+연산자는 문자열을 연결해줌


배열을 사용해서 개별문자 읽기가 가능

string str="test";

char x=str[2];//x='s';


아래는 예제여요.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _20190322
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 2147483647;
            long long_a = a;
            Console.WriteLine(a);
            Console.WriteLine(long_a+"\n");
            a += 1;
            long_a += 1;
            Console.WriteLine(a);//오버플로우 발생
            Console.WriteLine(long_a+"\n\n");//값의 범위가 훨씬큼
 
            float b = 0.000000000000000000000000000000000000034F;
            Console.WriteLine(b);
            b = 0.0000000000000000000000000000000000000034F;//?? Docs엔 3.4e-38까지 괜찮다고 했는데 e-39도 잘 됨
            Console.WriteLine(b);
            b = 0.00000000000000000000000000000000000000034F;//3.399998e-40 정확도가 맛탱이가 가기  시작함
            Console.WriteLine(b);
            b = 0.000000000000000000000000000000000000000034F;
            Console.WriteLine(b+"\n");
 
            double double_b = 0.000000000000000000000000000000000000000000000000000017D;//float 했을때보다 0많이더 붙였는데 끄떡없음
            Console.WriteLine(double_b + "\n\n");//1.7e-308까지 가능하다했는데 해보기 귀찮으니 docs를 믿고 생략
 
 
            char c = 'x';
            Console.WriteLine(c + "\n\n");
 
            string str = "test";
            Console.WriteLine(str);
            char ch = str[2];
            Console.WriteLine(ch);//진짜루 됩니다 진짜루요.
 
            Console.WriteLine("데이터형은 요까지.....");
 
 
            Console.ReadKey();
        }
    }
} 이렇게 하면 되는건지 잘 하고 있는지 잘 모르겠고, 홍대다녀와서 너므 힘들다..
 
cs


: