By "normal variable declarations", I assume the declarations like the below.
int a = 3;
If you define a parameter of a function, you will write like this:
void func(int a) {
<statement>
}
Let's assume a more complicated case. When you normally declare an array of pointer to functions, you will write
int (*p[3])(int, double);
and if you'd like to set this array as a function parameter, you will write
void func(int (*p[])(int, double)) {
<statement>
}
Now I found that, in any cases, the both ways look almost the same. However, I don't find what kind of "written evidence" assure this rule. In other words, when I write a super complex normal declaration, by what can I believe that I'm able to set the object as a function parameter with the way I just now used in normally declaring the object? As far as I know, this rule is true, but it seems there is no evidence, though I visited so many websites in English and Japanese and even read the C++11 draft.
Does anyone have the evidence?