using System;
using System.Collections.Generic;
using System.Text;
namespace Day1017
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}", 100); //가수 : 다른 곳에서 출력불가(!=상수)
}
}
}
변수 > 구조체(ToInt,ToChar 등)로 정해진 Data Type에 이름을 생성해서 상수를 대입하는 것.
<형식> Data Type userName;
int.... 식별자 규칙 name;
ex. int a;
> 정해진 바이트에 주소생성 메모리 확보
float fl;
=========================================================================================
1. 지역변수 : 단일 {}()안에 선언된 변수를 말한다.
항상 초기화를 하자..
<ex1> static void test(int a)
{
int k; // 지역변수 {}()안에서만 사용
Console.WriteLine(y);====> 100 //전역 변수
//a, k test()의 지역변수
//외부 호출 불가
<ex2> static void test2(int a)
{
int k;
for(int i=0;i<10;i++0)
{
Console.WriteLine("{0}", a):
Console.WriteLine("{0}", k):
}
Console.WriteLine("{0}", i)://지역변수이기 때문에 오류출력(for의 지역변수)
Console.WriteLine("{0}", a):
Console.WriteLine("{0}", k):
}
2. 전역변수 (목적 : 호출)
- 단일 {} 다중 { { } } 상관하지 않고 호출할 수 있는 변수를 말한다.
- 전역변수는 값을 공유하기 위한 목적,
- 유일성
- 키워드 static,extern 전역변수이다.
- 키워드가 없는 일반 변수는 선언의 위치에 따라 전역과 지역으로 구분된다.(member변수)
class Program
{
static int k = 100;// program이라는 클래스의 전역변수, class안에 선언되어 멤버라고 한다
static void Main(string[] args)
{
Console.WriteLine("{0}", k); //지역변수
}
}
}
3. 멤버변수 (목적 : 은닉)
- 사용자 DataType class안에 선언된 변수
<형식>
class userName
{
접근지정자 키워드(static) DataType 변수; //값을 여기서 주지 않고 호출하는 자나 생성자가 준다.
//키워드를 가지고 잇는 변슈는 전역변수 키워드를 가지고 잇지 않을경우 userName의 .....
}
<ex> class Test
{
public static int a; //전역변수
public int b; //일반멤버 지역변수
- 초기값은 할당하지 않아도 기본값이 할당
- 멤버변수는 일반변수와 전역변수등으로 이루어 진다.
- 멤버변수는 반드시 해당 class를 동적 할당 후 멤버임을 지칭하는 연사자를 사용한다.(지역)
<형식>
userName 객체Name = new
userName();
객체Name.멤버변수=상수;
<ex>
Test t1(object개체/객체(참조)) = new Test(); //사용자 datatype을 만들땐 꼭 이렇게 사용
t1.b = 100;
- 선언 시에는 static에 주소를 stack에 호출되는 객체를 heap에는 메모리 확보를 가진다.
4. 사용자 DataType - class와 struct
class
- C#에서 제공하는 자료형들을 가지고 user가 자주 사용하는 자료셩을 하나의 이름으로 묶어서 등록한 키워드(static에서 기억)
5. 멤버변수 중 일반 변수는 객체생성(new)후 객체, 멤버변수로 호출하고
static변수는 class명.멤버로 호출한다.
6.struct 구현해 보자. - 구조체 = 오픈된 자료형
<형식>
struct userName
{
멤버변수등등; //멤버필드
}