2011-05-11 7 views

답변

1

문자열이 null로 끝나지 않으므로 (null로 끝남) 실제로 문자열 내에 null 문자 ('\ 0')를 저장할 수 있습니다. 작업 할 문자열에는이 특수 문자 중 하나를 사용할 수 없습니다. 여기

는 null 문자를 참조에서 문자열의 마이크로 소프트의 정의입니다 :

http://msdn.microsoft.com/en-us/library/ms228362.aspx

+2

이 실제로 실제로 .NET에서 문자열 * 모두 * 길이 접두사 *와 * 널 (null) 종료되었습니다. OLE 자동화에서도 마찬가지입니다. BSTR에도이 속성이 있습니다. –

+0

@Eric Lippert - Microsoft 설명서에서 'C# 문자열 끝에 null 문자가 없음' – IAmTimCorey

+5

C# 사용자의 관점에서 null 문자를 종료하는 문자가 없습니다. 10 자의 문자열이 있고 10 번째 문자를 요청하면 null이 반환되지 않습니다. 그러나 구현 세부 사항으로, 프레임 워크는 실제로 여분의 2 바이트를 할당하고 실제로 거기에 제로 숯불을 넣지 않습니다. 비슷하게 구현 세부 사항으로서 런타임은 문자 데이터 앞에 메모리의 문자열 길이를 저장합니다. C# *에서 *를 알 수있는 방법이 없지만 디버거의 원시 메모리를 살펴 본다면 그것을 볼 수 있습니다. –

관련 문제