[질문] 포인터배열을 보고 있는데..이해가..안됩니다.
재넘이
#include iostream.h
#include stdio.h
void main()
{
char b[3][5] = { abc, de, fghi };
char *pb[3] = { ABC, DE, FGHI };
cout [포인터배열 및 문자열에 저장된 문자데이터 출력 ]\n;
for(int k = 0; k 3; k++)
cout pb[ k ] : pb[k] \t;
for(cout \n, k = 0; k 3; k++)
cout b[ k ] : b[k] \t;
cout \n\n;
cout [포인터 배열 및 문자열에 저장된 문자데이터의 선두번지 ]\n;
cout pb : pb \t\t&pb : &pb \n;
for(k = 0; k 3; k++)
cout &pb[ k ] : &pb[k] \n;
for(cout \n, k = 0; k 3; k++)
cout &b [ k ] : &b[k] \t;
cout \n;
}
================= result ===============================[포인터배열 및 문자열에 저장된 문자데이터 출력 ]
pb[0] : ABC pb[1] : DE pb[2] : FGHI
b[0] : abc b[1] : de b[2] : fghi
[포인터 배열 및 문자열에 저장된 문자데이터의 선두번지 ]
pb : 0x0012FF64 &pb : 0x0012FF64
&pb[0] : 0x0012FF64
&pb[1] : 0x0012FF68
&pb[2] : 0x0012FF6C
&b [0] : 0x0012FF70 &b [1] : 0x0012FF75 &b [2] : 0x0012FF7A
Press any key to continue질문 1
위소스는 정적배열과 동적배열의 차이를 알기 위한것인데여
포인터 배열은 동일한 배열의 초기주소값을 각각요소로 갖는 포인터 배열로 알고 있습니다.
위에 소스에서 다른건 다이해가 되는데요
pb[0],pb[1],pb[2] 값이 어떻게 ABC , DE , FGHI 이렇게 나오는지...
pb는 포인터 배열로
pb[0] = ABC (첫주소)
pb[1] = DE (첫주소)
pb[2] = FGHI (첫주소)
이렇게 갖고 있는거 아닌가여 ?
책에 나오있는 예제를 보는중인데용 메모리상에도
pb[3]은 각가 주소값을 갖고 있는걸루 나오는데요
어째서 cout으로 찍으면 그주소의 내용들이 보여지는지...........
개념이 헷갈려서 그런건지....
아~~~헷갈려..
설명 부탁합니다.. 제가 잘못 이해하고 있는건지 몰겠어여....
-
라일락
감사합니다
-
민트향
열심히 하세용~ ^_^
-
옆집꼬마야
배열원소의 선두번지와 , 배열원소의 메모리 번지는 분명 다른것이겠죠?
-
반율하
아~~~이제 어느정도 포인터는 이해했다고 생각했는데..그럼또? - -;
-
메이커
사이트에 보면, \[c자료] 포인터를 쉽게 설명해논 파워포인트 문서\ 라는 게시물이 있어요. 이거 보고 이해하시면 됩니다. 설명을 할려고하면, 포인터 개념부터 얘기해야 할것 같아요. 양이 많아질것 같음.. ^^;