[Unity]/[C#]

[C# 기초] #02 : 변수 - 값 형식 / 참조 형식

극꼼 2021. 5. 15. 22:21
반응형


 

유니티 기초 글 링크 모음 : geukggom.tistory.com/1

 

[Unity] 공부글 모음

1) 변수 - 데이터형식(Data Type)과 형변환 : geukggom.tistory.com/20 - 값 형식 / 참조 형식 : https://geukggom.tistory.com/44 - List값 복사하기 : https://geukggom.tistory.com/55

geukggom.tistory.com

[서론]

안녕하세요, 극꼼이입니다!

1에서 변수의 데이터타입과 형변환을 알아본데에 이어서 변수의 값형식과 참조 형식에 대해 알아보도록 하겠습니다.

 


[값 형식]

값 형식은 말 그대로 값을 집어넣는 데이터 타입을 말합니다. 

값 형식의 데이터 타입의 예시로는 int, float, char, string, bool 등이 있습니다.\

 

int a = 1;
int b = a;  // 변수 b에 a의 값을 집어 넣음.
b = 3;
Debug.Log(a);      // b의 값을 바꿔도 a = 1로, b의 영향을 받지 않음.

위의 예시처럼, 값 형식의 데이터 타입의 변수에는 값 자체를 집어넣는 것이기 때문에 다른 변수의 값을 바꿔도 원래 변수의 값은 이에 영향을 받지 않습니다. 

 

 

[참조 형식]

참조 형식은 데이터를 직접 저장하는 대신, 데이터가 있는 주소값을 저장(참조)하는 데이터 타입을 말합니다.

아래와 같은 오브젝트A를 예시로 들어보겠습니다.

오브젝트A 안에는 Transform, Rigidbody, Collider와 같은 여러 컴포넌트가 각각의 주소값을 가지고 있습니다.

 

Transform A_tran = objectA.transform;
Transform A_tran2 = objectA.transform;

A_tran과 A_tran2 변수 모두 objectA의 Transfrom 컴포넌트를 입력해줍니다.

A_trans2.position = new Vector3(1,2,5);
Debug.Log(A_tran.position);   //(1,2,5) 찍힘

A_tran2 변수의 position 값을 바꿨을 때, A_tran 변수의 position 값도 똑같이 바뀌게 됩니다.

서로 같은 주소값을 참조하고 있기 때문에 서로 영향을 받는 것입니다. 

반응형