차례:
정의-간접 연산자 란 무엇입니까?
C #의 맥락에서 간접 연산자는 포인터가 가리키는 변수의 값을 얻는 데 사용되는 연산자입니다. 변수를 가리키는 포인터는 메모리 주소에 저장된 변수의 값에 대한 간접 액세스를 제공하지만 간접 연산자는 포인터를 역 참조하고 해당 메모리 위치에서 변수의 값을 반환합니다. 간접 연산자는 기호 (*)로 표시되는 단항 연산자입니다.
간접 연산자는 정수에 대한 포인터, 정수에 대한 포인터의 1 차원 배열, 문자에 대한 포인터 및 알 수없는 유형에 대한 포인터에 사용될 수 있습니다.
Techopedia는 간접 연산자를 설명합니다
(*) 기호는 포인터 유형을 선언하고 포인터 간접을 수행 할 때 사용되며 'address-of'연산자 ()는 변수의 주소를 반환합니다. 따라서 간접 연산자와 주소 연산자는 서로 반대입니다.
C #에서는 안전하지 않은 지역에서만 포인터를 사용할 수 있습니다. 이는 해당 지역 내의 코드 안전성이 CLR (공용 언어 런타임)에 의해 확인되지 않았 음을 의미합니다. 안전하지 않은 영역에서 간접 연산자는 포인터를 읽고 쓸 수 있습니다. 다음 C # 문은 간접 연산자의 사용법을 보여줍니다.
- int a = 1, b; // 1 행
- int * pInt = & a; // 2 행
- b = * pInt; // 3 행
런타임에 정의되지 않은 동작을 피하기 위해 주소를 가리키는 형식으로 유효한 포인터를 역 참조하는 데 간접 연산자를 사용해야합니다. 컴파일러 오류를 피하기 위해 void 포인터 나 포인터 유형이 아닌 표현식에 적용하면 안됩니다. 그러나 빈 포인터를 올바른 포인터 유형으로 캐스트 한 후 간접 연산자를 사용할 수 있습니다.
단일 명령문에서 여러 포인터를 선언 할 때 기본 유형으로 한 번만 간접 연산자를 작성해야하며 각 포인터 이름에 대해 반복해서는 안됩니다. C 및 C ++과 달리 간접 연산자는 C #에서 분산 적입니다. 간접 연산자가 널 포인터에 적용되면 구현 정의 동작이 발생합니다. 이 연산자는 안전하지 않은 컨텍스트에서 사용되므로 컴파일 중 / unsafe 옵션과 함께 키워드 unsafe를 사용해야합니다. 이 정의는 C #의 맥락에서 작성되었습니다.