:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
06/09/21 10:13
차근차근 살펴보죠...
cout << "*pa : " << *pa << endl; // 배열의 첫번째가 10 이므로 10 출력 cout << "*(pa+1) :" << *(pa+1) << endl;// 배열의 2번째가 20이므로 20 출력, pa는 여전히 10(a[0])를 가리킴 cout << "*pa++ : " << *pa++ << endl;// 후위연산이므로 일단 10이 출력되고 나서, pa가 a[1]을 가리킴 cout << "(*pa)++: " << (*pa)++ << endl; // a[1]이 20이므로 20을 출력하고 a[1]++ 이 수행됨. 즉 20에 1을 더해 21이 됨. cout << "*pa : " << *pa << endl;// a[1]은 21. 21을 출력함 cout << "*pa++ : " << *pa++ << endl;// a[1]이 21이므로 21을 출력한 후에 pa는 a[2]를 가리킴. cout << "*pa++ : " << *pa++ << endl;// a[2]가 30이므로 30을 출력한 후에 pa는 a[3]을 가리킴. (사실 a[3]은 없죠.)
06/09/21 11:48
pa 는 포인터, 즉 주소값이라고 생각하시고
*pa 는 포인터의 참조, 즉 정수 값입니다. 그러므로 pa++ 은 주소가 다음 단계로 가는 거니까, 다음 어레이가 되고 (*pa)++ 은 정수 값에 1을 더한 것이죠 예제를 보면 알 수 있듯이, * 보다 ++의 우선순위가 높습니다.
|