{C \ #} string 의 내부
private int m_stringLength;
private char m_firstChar;
문자열 의 동작 에 대해 내 부 는 모두 unsafe code 입 니 다.
char* ap = &strA.m_firstChar
여기 서 string 의 쉽 지 않 음 이 드 러 났 다.왜 mfirstChar (값 형식 char) 의 주 소 는 문자열 을 대신 할 수 있 습 니까?
char a = 'a';
char* pa = &a;
파 를 통 해 "abcd" 를 얻 을 수 있 습 니까? 안 될 겁 니 다.
그래서 우 리 는 다시 깊이 들 어가 보 자. char 가 도대체 무엇 인지?
public struct Char
{
internal char m_value;
}
char 는 System. Char 의 별명 입 니 다. 비슷 한 struct 를 정의 하려 면 컴 파일 할 수 없 을 것 입 니 다. 순환 참조 와 관련 되 어 컴 파일 러 는 struct 의 크기 를 정할 수 없습니다.그러나 내장 유형 에 대해 컴 파일 러 는 크기 를 명확 하 게 알 수 있 고 '건 너 뛰 기' 검 사 를 할 수 있다.Char 는 구조 함수 가 없어 서 우 리 는 그 가 어떻게 초기 화 했 는 지, 바 텀 데이터 구조 도 모 르 고 메모리 도 어떻게 사용 하 는 지 모른다.string 의 표현 에 따 르 면 CLR 내부 에 char 에 대해 실제 적 으로 char * * 지침 이 포함 되 어 있 음 을 추측 할 수 있 습 니 다.Char 로 표 현 될 때 한 바이트 (char [0]) 만 가 져 옵 니 다.그러나 표면의 바이트 에 국한 되 지 않 고 char * 는 실제 문자열 일 수 있 습 니 다.string 의 구조 함수 에서 (그대로 보이 지 않 음) 메모리 분 배 를 완 료 했 고 첫 주 소 를 m 에 포함 시 켰 습 니 다.firstChar 에서 (m value 의 접근 유형 은 internal 임 을 주의 하 십시오) 길이 mstringLength, 이렇게 하면 설명 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.