a question about vtkImplicitFunction::EvaluateGradient

Yes, parameters declared like that “decay” to pointers inside the function. But it is a good practice to declare them explicitly as pointers to avoid misleading anyone else reading your code. Declaring them as pointers makes it clear that the array elements will be changed inside the function. IMO, the form void foo( double x[] ) being equivalent to void foo( double* x ) is a language design flaw.

cheers,

Paulo