In the parameter list, function declarations of functions are equivalent:
int myFunction(int* xVals, int* yVals, int nVertices);
int myFunction(int xVals[], int yVals[], int nVertices);
However, this is not easy to generalize. Inside the function, there is a big difference between:
int AnotherFunction(void)
{
int array[] = { 0, 1, 2, 3 };
int *iptr = &array[0];
...
}
And in the functional interface, there is a big difference between the two types of parameters:
int arrays_vs_pointers(int **iptrptr, int array[][12]);
You also ask (fixed):
int xVals[5], yVals[5];
myFunction(xVals, yVals, 5);
myFunction(&xVals[0], &yVals[0], 5);
These calls are valid and equivalent to each other.
" int * , int []?" .
, , , .
" int * , int []?" !