Domanda

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

Hi I'm new in turbo c, especially in pointers. Can someone please explain to me how the pointer was used in this program. Thank you in advance.

I know how the program works, but what I cannot understand is why did the program used a pointer and the '&' sign. Thanks.

È stato utile?

Soluzione

This is an illustrative example of Pointers in C, However this code can also be written without using pointers. Here

p=&a[0]

^ stores the memory address of the First value of the array a. And the For loop will execute till the Pointer stores the memory address of the last Array value i.e. a[10].

sum += *p;

^ in the above statement *p stands for the value of the memory address to which pointer p points to. For Example p currently points to a[0]. Then the Value of a[0] will be added to sum. In the next iteration of the For loop, the value of p increases and it will point to a[1].

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top