값형식
값형식의 변수에는 값이 포함되어 있습니다
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 |