this is a program from a book in C
#include<stdio.h>
int *fun(int *p, int n);
main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10}, *ptr, n;
n=5;
ptr = fun(arr, n);
printf("arr = %p, ptr = %p, *ptr = %d\n",arr,ptr,*ptr);
}
int *fun(int *p, int n)
{
p=p+n;
return p;
}
I'm confused as to how p=p+n
line works, as p should hold the pointer towards arr[0]
according to me, but it adds with an integer and in output *ptr
is 6