2013-08-04 3 views
-1

어떻게 프로그램에서 포인터를 사용하면 실행 속도가 빨라 집니까?
포인터를 사용하여 변수에 액세스 할 때 먼저 프로그램을 실행하는 동안 포인터 주소로 이동하여 변수의 주소를 찾은 다음 변수를 사용하여 포인터를 사용하여 (즉, 내가 아는 바로는) 변수에 액세스해야합니다.
여기서 변수를 사용하는 것이 더 빠릅니다.
그러면 포인터가 속도를 어떻게 높이나요?포인터가 실행 속도를 높이려면 어떻게해야합니까?

+2

[표창장은 필요 없습니다] –

+1

당신이 가리키는 것 또한 얼마나 큰가요? 항상 가치에 의해 그것을 전달하고 싶습니까? – FDinoff

+0

증거 경관은 어디에 있습니까? –

답변

6

포인터를 4KB의 데이터에 전달하면 4KB를 복사하여 "값"으로 전달하는 것보다 빠르고 (메모리 사용이 적음) 더 빠릅니다.

단순한 '정수'의 경우 포인터를 전달하는 것보다 포인터를 참조 해제하는 것이 더 빠릅니다.

포인터는 일반적으로 그보다 큰 데이터 구조에 사용됩니다. 수신 기능은 발신자 &되는 발신자의 독립적 인 단순한 복사본을 갖는보다는 포인터를 통해 원래의 데이터 또는 데이터 구조를 수정할 수 -

포인터의 다른 사용 는 수정 가능성 있도록하는 것이다 변경 사항을 볼 수 없습니다.

예를 들어 FILE *은 파일 핸들에 대한 포인터입니다. I/O 함수는이 포인터를 내부 포인터 업데이트 &으로 가져와 현재 위치를 추적합니다.

+0

함수가 전달 된 정수 값을 변경해야한다면 어떨까요? –

+2

@ Ed : 마지막 (글쎄, 지금은 두번째로 마지막) 문단에서 다루지 않습니까? – icktoofay

+0

예, @EdHeal, 4 단락의 수정 가능성에 대해 다루었습니다. 포인터를 통해 해당 int를 수정할 가능성을 다루기 위해 _data_ 및 _data structures_를 특별히 언급했습니다. –

관련 문제