C++의 포인터와 배열을 이해하려고합니다. 다음 코드에서 a
출력은 array
의 첫 번째 요소의 주소를 올바르게 표시하지만 c
을 출력하면 주소가 아닌 pk
이됩니다.C++에서 문자 배열 대 정수 배열의 포인터
int array[3]={4,7,2};
int * a;
a= array;
char Carray[3]={'p','k','\0'};
char * c;
c= Carray;
cout << a << "\n";
cout << c << "\n";
이 Carray
의 첫 번째 요소의 주소를 찾을 수있는 잘못된 방법이 있나요? 또는 정수형 및 문자 배열에 대한 포인터를 해석하는 방법에 대한 약간의 변덕입니다. cout
출력 :
Ox23fe30
pk
이러한 진술에서 얻은 결과를 알려주십시오. – turbulencetoo
C 스타일 문자열은 널 문자'\ 0'으로 끝나는'char' 배열이고,'cout'은 C 스타일 문자열을 전달한다고 가정합니다. 따라서 첫 번째 요소의 주소를 가져 오는 방법은 정확하지만 'int'와 'char'의 경우 'cout'의 주소 해석이 다릅니다. –
특별히 C와의 비교를 요구하지 않는 한, C++ 질문에 C로 태그를 지정하지 마십시오. 언어와 관용적 대답은 매우 다를 수 있습니다. – crashmstr