By how much is pointer incremented in these situations and why?
void f(int a[])
{
a++;
printf("%d", *a);
}
void g(int a[][M])
{
a++;
printf("%d", *a[0]);
}
Lets say that in main I have a static allocated array with n elements and static allocated matrix (2D array) with n rows and M columns and I'm calling functions f and g (I couldn't write this in code because I was unable to post the question with a lot of code and almost no text).
int a[]decays toint *a, soaincrements insizeof(int)steps.int a[][]decays intoint **a, soaincrements insizeof(int*)steps.int (*)[M].void f(int a[])andvoid f(int * a). The signatures are completely equivalent.