분류 전체보기 504

[C#] 전역 변수, 지역변수

전역 변수로 선언하면 어디에서든 불러오고 수정할 수 있다. 하지만 함수 안에서 변수를 선언하면 그 변수는 지역 변수가 된다. 이때 해당 변수는 함수 내에서만 존재하며 밖에서는 불러올 수 없다. 그렇기 때문에 각기 다른 함수 내에서 같은 이름의 지역 변수를 만들어도 무관하다. int a = 1; // 전역 변수(멤버 변수) void a () { int a = 5; // 지역 변수 a = 6; } 이렇게 이미 전역 변수를 선언했는데 같은 이름의 지역 변수를 선언하게 되면 그 함수 안에서는 지역 변수가 우선이 되므로 전역 변수는 무시된다. 지역 변수는 평상시 존재하지 않다가 함수가 호출되면 생성됐다가 함수가 종료되면 파기된다. 이걸 이용해 메모리 최적화가 가능하다. 접근 지정자 public class test..

VisualStudio/C# 2022.08.10

[C#] 값 형식(Value Types)과 참조 형식(Reference Types)

값 형식 : 변수가 값을 담는 데이터 형식. 참조 형식 : 변수가 값 대신 값이 있는 곳의 위치(참조)를 담는 데이터 형식. 이 둘을 이해하려면 두 가지 메모리 영역에 대해 알고있어야 한다. 바로 스택(Stack)과 힙(Heap)이다. 이 메모리 영역 중 값 형식과 관련이 있는 것은 스택 메모리 영역이고, 참조 형식과 관련 있는 것은 힙 메모리 영역이다. 1. 스택과 값 형식. 스택에 대해 이야기 해보자. 스택의 구조는 마치 책상 위에 쌓인 책이라고 생각하면 된다. 맨 밑에 있는 책을 읽고 싶다면, 위에 있는 책들을 모두 걷어낸 후에나 가능할 것이다. 스택 메모리도 이렇게 동작한다. 다음과 같은 코드를 작성했다고 하자. { // 코드 블록 시작 int a = 10; int b = 20; int c = 3..

VisualStudio/C# 2022.08.10

[CS] 스택(Stack)과 힙(Heap) 차이

Stack (스택) 이란? - 프로그램을 실행하는데 필요한 메모리 공간으로 메소드가 호출되는데 필요한 메모리는 스택에 저장된다. 여기서 이야기하는 메소드가 호출되는데 필요한 메모리는 지역변수, 매개변수, 리턴값 등이다. Stack Frame (스택프레임) - 메소드를 호출하기 전에 반드시 호출에 필요한 메모리를 스택에 만들어야 하는데, 이 때 하나의 메소드에 필요한 메모리 덩어리를 묶어서 '스택프레임' 이라고 한다. 즉, 하나의 메소드에는 하나의 스택프레임이 존재하는 것이다. 스택프레임의 구성 요소로는 위에서 이야기한 지역변수, 매개변수, 리턴값 등이 있다. 메소드 호출과 스택메모리 - 하나의 메소드를 호출하면 그 메소드에 해당하는 하나의 스택프레임이 스택에 만들어진다. 스택에 만들어진 메모리는 메소드의..

CS 2022.08.10

환영합니다!

#1 글을 작성하고 블로그를 관리해보세요. 님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다. '편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다. 글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요. #2 다양한 스킨이 있어요. 티스토리에 있는 다양한 '스킨'도 살펴 보세요. 블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다. 어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요. '스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요. 마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요. ..

카테고리 없음 2022.08.04