can anyone ecplain the process behind this output

#include<iostream>

int main()

{
int i;
int arr[]={4,6,10,12};
int*pointer=arr;
for( i=1;i<=3;i++)
{
std::cout<<*pointer<<"#";
pointer++;
}

for(i=1;i<=4;i++)
{
(*pointer)*=3;
--pointer;
}

for(i=1;i<5;i++)
std::cout<<arr[i-1]<<"@";

return 0;

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>

int
main()
{
    int i;
    int arr[] = { 4, 6, 10, 12 };
    int *pointer = arr;		// pointer points to first element in arr (4)
    for (i = 1; i <= 3; i++) {
	std::cout << *pointer << "#"; // print what pointer points to.
	pointer++;		// increment pointer to 2nd, 3rd, 4th element
    }

    // Here pointer points to 4th element (12)
    for (i = 1; i <= 4; i++) {
	(*pointer) *= 3;	// same as *pointer = *pointer * 3. So multiply element by 3.
	--pointer;		// and decrement pointer to point to 3rd, 2nd, 1st etc.
    }

    for (i = 1; i < 5; i++)
	// print an element of arr. In C++, the 1st element in an array is arr[0], 2nd is arr[1] etc.
	// so this prints elements arr[0] through arr[3], which is all 4 elements.
	std::cout << arr[i - 1] << "@";

    return 0;

}

Topic archived. No new replies allowed.