2009-06-12 2 views
1

하나의 C# 유지 관리 프로젝트에서 나는 다음 변수 선언을 보았습니다.C#에서 포인터?

Int32* iProgressAddress; 

C#의 포인터 선언입니까?

C#에서는 포인터 개념이 없다고 생각합니다. 그 문장은 무엇을 의미합니까?

+1

다음 질문을 참조하십시오. http://stackoverflow.com/questions/430112/what-is-the-difference-between-ac-reference-and-a-pointer http://stackoverflow.com/questions/584134/should-you-use-pointers-unsafe-code-in-c http://stackoverflow.com/questions/607159/c-benefit-of-explicitly-stating-unsafe-compiler-option –

+0

다음은 좋은 소개입니다. C#에서 포인터에 - http://www.codeproject.com/KB/cs/csunsafeintro01.aspx – RichardOD

답변

5

C#은 포인터를 지원하지만 int, float, enums 및 기타 포인터 유형 (나머지 기본 요소)과 같은 관리되지 않는 유형의 원시 데이터 유형을 가리키는 것으로 제한됩니다.

편집 :뿐만 아니라 값 형식

+0

아주 정확하지 않습니다. 구조체를 포함한 모든 * 값 유형 *에 대한 포인터를 가질 수 있습니다. 그러나 참조 유형 변수를 포함하지 않는 구조체 만. – JulianR

3

네, 그렇습니다.

이 메서드는 unsafe으로 표시되어 있습니다. 어셈블리뿐만 아니라.

관리 코드에서 포인터를 사용하기 전에 알아야 할 사항이 많이 있습니다. 예를 들어 포인터 고정.

1

죄송합니다. 포인터 인 것 같습니다. 익숙해 져야합니다.

정말이에요! 포인터는 그다지 무서운 것이 아닙니다. :)