char 포인터를 다룰 때는 다양한 환경에서 어떻게 처리되는지 이해하는 것이 중요합니다. %u 및 %s 변환 지정자를 사용하는 print()는 인쇄 주소 또는 문자열을 제어하지만 cout을 사용할 때 문제가 발생합니다.
다음 코드 조각을 고려하세요.
<code class="cpp">char ch = 'a'; char *cptr = &ch; cout << cptr << endl;
여기서, 원하는 출력은 cptr에 저장된 ch의 주소입니다. 그러나 기본적으로 cout은 cptr을 일반 문자열로 처리하고 주소 대신 'a' 문자를 인쇄하는 경향이 있습니다.
이 문제를 해결하려면 다음이 필요합니다. cout이 cptr을 char 포인터가 아닌 void 포인터로 해석하도록 강제합니다. 이를 통해 우리는 특히 void 포인터를 처리하고 해당 주소를 인쇄하는 ostream& 연산자를 활용할 수 있습니다.
이를 달성하기 위해 다음과 같이 캐스트를 활용할 수 있습니다.
<code class="cpp">cout << static_cast<void *>(cptr) << endl;</code>
cptr을 무효 포인터가 있으면 과부하 해결 방법이 올바른 연산자를 선택하여 원하는 주소가 인쇄됩니다.
위 내용은 char 포인터로 작업할 때 'cout'이 주소 대신 문자를 인쇄하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!