간접 연산자

작가: Lewis Jackson
창조 날짜: 8 할 수있다 2021
업데이트 날짜: 1 칠월 2024
Anonim
C언어 무료 동영상 강의 49.  간접 연산자 50.  인덱스 연산자
동영상: C언어 무료 동영상 강의 49. 간접 연산자 50. 인덱스 연산자

콘텐츠

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

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

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

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

Microsoft Azure 및 Microsoft 클라우드 소개 | 이 가이드를 통해 클라우드 컴퓨팅에 관한 모든 내용과 클라우드에서 비즈니스를 마이그레이션하고 운영하는 데 Microsoft Azure가 어떻게 도움이되는지 알아 봅니다.

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

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

C #에서는 안전하지 않은 지역에서만 포인터를 사용할 수 있습니다. 이는 해당 지역 내의 코드 안전성이 CLR (공용 언어 런타임)에 의해 확인되지 않았 음을 의미합니다. 안전하지 않은 영역에서 간접 연산자는 포인터를 읽고 쓸 수 있습니다. 다음 C # 문은 간접 연산자의 사용법을 보여줍니다.
  • int a = 1, b; // 1 행
  • int * pInt = & a; // 2 행
  • b = * pInt; // 3 행
위의 첫 번째 행에서 a와 b는 정수 변수이고 a는 1의 값으로 지정됩니다. 2 행에서 a의 주소는 정수 포인터 pInt (2 행)에 저장됩니다. 역 참조 연산자는 3 행에서 pInt가 가리키는 주소의 값을 정수 변수 b에 할당하는 데 사용됩니다.

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

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