C\#:인용 변수 와 수치 변수의 차이

1.값 매개 변 수 는 값 을 이용 하여 방법 으로 파 라 메 터 를 전달 할 때 컴 파일 러 는 실제 인삼 의 값 을 복사 하고 이 복사 본 을 이 방법 에 전달 합 니 다.호출 된 방법 은 메모리 의 실제 인삼 값 을 수정 하지 않 기 때문에 값 매개 변 수 를 사용 할 때 실제 값 이 안전 하 다 는 것 을 보증 할 수 있 습 니 다.호출 방법 을 사용 할 때 형식 화 된 매개 변수의 유형 이 값 매개 변수 라면 호출 된 실제 인삼 의 값 은 정확 한 값 표현 식 이 어야 합 니 다.다음 의 예 에서 프로그래머 는 교환 치 를 원 하 는 목적 을 실현 하지 못 했다.

using System;
class Test
{
static void Swap(int x,int y){
int temp=x;
x=y;
y=temp;
}
static void Main(){
int i=1,j=2;
Swap(i,j);
Console.WriteLine("i={0},j={1}",i,j);
}
}
상기 코드 를 컴 파일 하면 프로그램 이 출력 합 니 다.
i=1,j=2
2.인용 형 매개 변수 와 값 인삼 이 다른 것 은 인용 형 매개 변 수 는 새로운 메모리 영역 을 열지 않 습 니 다.인용 형 매개 변 수 를 이용 하여 형 삼 을 전달 할 때 컴 파일 러 는 실제 값 이 메모리 에 있 는 주 소 를 방법 에 전달 합 니 다.
방법 에서 인용 형 매개 변 수 는 일반적으로 초기 화 되 었 다.다음 의 예 를 다시 보 자.

using System;
class Test
{
static void Swap(ref int x,ref int y){
int temp=x;
x=y;
y=temp;
}
static void Main(){
int i=1,j=2;
Swap(ref i,ref j);
Console.WriteLine("i={0},j={1}",i,j);
}
}
상기 코드 를 컴 파일 하면 프로그램 이 출력 합 니 다.
i=2,j=1
 
Main 함수 에서 Swap 함 수 를 호출 했 습 니 다.x 는 i 를 대표 하고 y 는 j 를 대표 합 니 다.이렇게 해서 호출 은 i 와 j 의 값 교환 을 성공 적 으로 실현 했다.
방법 에서 인용 형 파 라 메 터 를 사용 하면 여러 변수 이름 이 같은 메모리 주 소 를 가리 킬 수 있 습 니 다.예시 참조:

class A
{
string s;
void F(ref string a,ref string b){
s="One";
a="Two";
b="Three";
}
void G(){
F(ref s,ref s);
}
}
방법 G 가 F 를 호출 하 는 과정 에서 s 의 인용 은 a 와 b 에 동시에 전달 되 었 다.이때 s,a,b 는 같은 메모리 영역 을 동시에 가리 키 고 있 습 니 다.

좋은 웹페이지 즐겨찾기