개발 간접 연산자 란 무엇입니까? -techopedia에서 정의

간접 연산자 란 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-간접 연산자 란 무엇입니까?

C #의 맥락에서 간접 연산자는 포인터가 가리키는 변수의 값을 얻는 데 사용되는 연산자입니다. 변수를 가리키는 포인터는 메모리 주소에 저장된 변수의 값에 대한 간접 액세스를 제공하지만 간접 연산자는 포인터를 역 참조하고 해당 메모리 위치에서 변수의 값을 반환합니다. 간접 연산자는 기호 (*)로 표시되는 단항 연산자입니다.


간접 연산자는 정수에 대한 포인터, 정수에 대한 포인터의 1 차원 배열, 문자에 대한 포인터 및 알 수없는 유형에 대한 포인터에 사용될 수 있습니다.


간접 연산자는 역 참조 연산자라고도합니다.

Techopedia는 간접 연산자를 설명합니다

(*) 기호는 포인터 유형을 선언하고 포인터 간접을 수행 할 때 사용되며 'address-of'연산자 ()는 변수의 주소를 반환합니다. 따라서 간접 연산자와 주소 연산자는 서로 반대입니다.


C #에서는 안전하지 않은 지역에서만 포인터를 사용할 수 있습니다. 이는 해당 지역 내의 코드 안전성이 CLR (공용 언어 런타임)에 의해 확인되지 않았 음을 의미합니다. 안전하지 않은 영역에서 간접 연산자는 포인터를 읽고 쓸 수 있습니다. 다음 C # 문은 간접 연산자의 사용법을 보여줍니다.

  • int a = 1, b; // 1 행
  • int * pInt = & a; // 2 행
  • b = * pInt; // 3 행
위의 첫 번째 줄에서 a와 b는 정수 변수이고 a에는 값 1이 할당됩니다. 두 번째 줄에서 a의 주소는 정수 포인터 pInt (2 행)에 저장됩니다. 역 참조 연산자는 3 행에서 pInt가 가리키는 주소의 값을 정수 변수 b에 할당하는 데 사용됩니다.


런타임에 정의되지 않은 동작을 피하기 위해 주소를 가리키는 형식으로 유효한 포인터를 역 참조하는 데 간접 연산자를 사용해야합니다. 컴파일러 오류를 피하기 위해 void 포인터 나 포인터 유형이 아닌 표현식에 적용하면 안됩니다. 그러나 빈 포인터를 올바른 포인터 유형으로 캐스트 한 후 간접 연산자를 사용할 수 있습니다.


단일 명령문에서 여러 포인터를 선언 할 때 기본 유형으로 한 번만 간접 연산자를 작성해야하며 각 포인터 이름에 대해 반복해서는 안됩니다. C 및 C ++과 달리 간접 연산자는 C #에서 분산 적입니다. 간접 연산자가 널 포인터에 적용되면 구현 정의 동작이 발생합니다. 이 연산자는 안전하지 않은 컨텍스트에서 사용되므로 컴파일 중 / unsafe 옵션과 함께 키워드 unsafe를 사용해야합니다. 이 정의는 C #의 맥락에서 작성되었습니다.

간접 연산자 란 무엇입니까? -techopedia에서 정의