I am trying to understand how pointers work and I am stuck on this block of code. Can someone explain where does the expression '*(a+tally)' point to in this block of code? What is the logic behind it?
#include <stdio.h>
int main()
{ 
    int a[5]={1,2,3,4,5},b[5]={10,20,30,40,50},tally;
    
    for(tally=0;tally< 5;++tally)
    {
        *(a+tally)= *(tally+a) + *(b+tally);
    }
    
    for(tally=0;tally< 5;tally++) 
    {
        printf("%d" *(a+tally));
    }
    
    return 0;
}
 
    