2013-03-03 1 views
0
int a[10],sum,*p; 
sum=0; 
for(p=&a[0];p<&a[10];p++) 
    sum += *p; 
printf("%d",sum) 

안녕하세요, 저는 포인터가 특히 터보 C에서 새롭습니다. 누군가이 프로그램에서 포인터가 어떻게 사용되었는지 설명해주십시오. 미리 감사드립니다.포인터가 다음 터보에서 사용 된 이유를 설명하십시오.

나는 프로그램이 어떻게 작동하는지 알지만, 왜 내가 이해할 수 없는지는 프로그램이 포인터와 '&'기호를 사용했기 때문입니다. 감사.

+1

기본 자습서를 참조하십시오. –

+0

이 정의에서 시작 - 포인터는 메모리 *의 다른 변수의 주소를 보유하는 변수입니다. – Lion

+1

선택이 있다면 전염병처럼 터보 C를 피하십시오. 고대예요. –

답변

1

이것은 C의 포인터에 대한 예입니다. 그러나이 코드는 포인터를 사용하지 않고도 작성할 수 있습니다. 여기

p=&a[0]

^a 저장 배열의 첫 번째 값의 메모리 어드레스. 그리고 포인터가 마지막 배열 값의 메모리 주소, 즉 a[10]을 저장할 때까지 For 루프가 실행됩니다.

sum += *p;

^상기 문의하는 p 포인터가 가리키는 메모리 주소의 값 *p 선다. 예를 들어 p은 현재 a[0]을 가리 킵니다. 그런 다음 a[0]의 값이 sum에 추가됩니다. For 루프의 다음 반복에서 p 값이 증가하고 a[1]을 가리 킵니다.

관련 문제