:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
18/02/06 17:37
++= , +++ = 연산자는 없습니다.
*pt++ = 10; *pt++ += 20; 이걸겁니다. pt의 데이터 값 공간에 10을 대입하고 pt에 ++을 수행 (다음 메모리 영역으로 이동) pt의 데이터 값 공간에 20을 더하고 pt에 ++ 연산을 수행 근데 저런식으로 ++ 연산자를 알기 어렵게 쓰는 방식은 추천하지 않습니다. 컴파일러마다 결과가 다르게 나올 가능성이 있어서요. 제 답변은 VS 2015 Community 버전 기준입니다.
18/02/06 17:39
포인터/어레이의 주소 개념과 전치/후치연산 설명하려고 소스를 저렇게 짰나 싶은데 뭔 코드를 저렇게 짰나 싶은데 좀 희안하네요;
----------------------------* <- 여기로 포인터 이동입니다. pp++ <- 포인터 이동 입니다. num[0][1][2][3] 포인터 앞에 * 이 붙으면 실제 [1] 안에 있는 값을 끄집어낸다는 뜻이니, *pt 안에 5를 집어넣고 포인터를 또 이동시켜서 [2] 로 이동 시킵니다. *pt++=10; 도 마찬가지 [2] 의 값을 10 으로 변경 한 뒤 [3]으로 이동합니다. --pt 로 다시 [2]로 복귀 [2] 에 있던 10 + 20 = 30 을 [2]에 담아줍니다. a+=20 입니다. 이후 다시 포인터를 [3] 으로 이동시켜 줍니다. 뭐 이딴 코드가 다있어 싶은데 좀 요약하자면 *pt ++ = 10; 은 num[2] = 10; pt 를 num[3] 으로 이동 *pt +++=20; 은 num[2] = num[2] + 20 (10 + 20) 이후 pt 를 num[3] 으로 이동 입니다. 출력 결과는 1, 5, 30, 4
|