void method(double *v)
void method(double v[5])
Is there any difference between these two?
Is the second one more specific,
Arrays when declared as parameter types, decay to the pointer types. In your example,
void method(double v[5]);
Here 5
doesn't play any role at all, it is so insignificant that you may omit it altogether, and write this instead:
void method(double v[]);
which is exactly same as the previous declaration. Since it decays into pointer, so the above two are exactly same as:
void method(double *v); //because array decays to pointer, anyway
That is, all the following are declarations of the same function:
void method(double v[5]); //ok : declaration
void method(double v[]); //ok : redeclaration of the above
void method(double *v); //ok : redeclaration of the above
ALL are exactly same. No difference at all.
Note that the following is different however:
void f(double (&v)[5]);
It declares a function which can take array of doubles of size exactly 5
. If you pass array of any other size (or if you pass pointers), it will give compilation error!