char* 배열 질문
쇼콜라데
질문 제목 : char* 배열 질문int narr[3]과 char* pstr[3]...질문 내용 :
int형 배열의 이름은 int narr[0]의 주소와 같습니다.
근데 char * 배열은 다릅니다.
pstr의 주소와 pstr[0]의 주소가 완전히 다른데요.
char * 배열의 각 요소에 저장된 건 문자열이 저장되어 있는 공간의 주소라고 알고 있습니다.
근데 왜 포인터 배열의 주소와 첫번째 요소의 주소는 다른가요?
int * 배열은 첫번째 요소의 주소와 같습니다만...
-
아놀드 2023-10-12
설마 이렇게 하진... 않았을거예요 그죠? 켁~
-
염소자리 2023-10-12
\tint nArr[3] = { 1 , 2 , 3 } ;
\tchar * pStr[3] = { \a\ , \b\ , \c\ } ;
\tint i ;
\tfor(i = 0 ; i 3 ; i++ )
\t\tprintf(\%d\\n\ , &nArr[0]) ;
\tputs(\==============================\);
\tfor(i = 0 ; i 3 ; i++ )
\t\tprintf(\%d\\n\ , &pStr[0]) ;
\tputs(\= -
우시 2023-10-12
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
-
잔디 2023-10-12
\tint nArr[3] = { 1 , 2 , 3 } ;
\tchar * pStr[3] = { \a\ , \b\ , \c\ } ;
\tint i ;
\tfor(i = 0 ; i 3 ; i++ )
\t\tprintf(\%d\\n\ , &nArr[i]) ;
\tputs(\==============================\);
\tfor(i = 0 ; i 3 ; i++ )
\t\tprintf(\%d\\n\ , &pStr[i]) ;
\tputs(\= -
날애 2023-10-12
쏘스를 공개하세요.. -_ㅜ;;
-
하연 2023-10-12
pStr == &pStr[0] 이고
pStr[0] == \a\의 주소값이잖아요..
&pStr[0] 이렇게 했어야죠...
nArr처럼 나올려면... -_ㅡ;; -
새얀 2023-10-12
어떤식으로 대입을 했는지 모르지만 브레이크 포인트로 잡아서 보시면 위의 결과처럼 나오지 않습니다. ㅎ;
-
다인 2023-10-12
서식문자 %d를 사용했습니다, %p가 아니에요.
-
유진깡 2023-10-12
어떻게 출력해서 저렇게 나온지 모르겠네요 ㅎ;
출력의 결과가 이상하게 나온듯 하네요
nArr : 0x00bec5c8이면
&nArr[1] : 0x00bec5cc 이고
pStr : 0x00bec5b4이면
&pStr[1] : 0x00bec5b8으로
4byte단위로 저장된 형태로 연속 형태를 갖아야 하는데 출력 하는 형태가 잘못된듯 하네요 -
꼬붕 2023-10-12
아뇨. int * 배열이란 말은 제가 혹시나 해서 실험해도 int 배열처럼 첫번째 요소의 주소와 똑같이 나와서요.
아.. 포인터라서 그렇지.. 하하.. 자바를 공부하다가 포인터를 생각못했음..