scenario 1
Say my function declaration looks like this:
void f(long double k[], long double y[], long double A, long double B) {
k[0] = A * B;
k[1] = A * y[1];
return;
}
where k and y are arrays, and A and B are numerical values that don't change. My
calling function is
f(k1, ya, A, B);
Now, the function f is only modifying the array "k" or actually elements in the
array k1 in the calling function. We see that A and B are numerical values that
don't change values when f is called.
scenario 2
If I use pointers on A and B, I have, the function declaration as
void f(long double k[], long double y[], long double *A, long double *B) {
k[0] = *A * *B;
k[1] = *A * y[1];
return;
}
and the calling function is modified as
f(k1, ya, &A, &B);
I have two questions:
Both scenarios 1 and 2 will work. In my opinion, scenario 1 is good when
values A and B are not being modified by the function f while scenario 2
(passing A and B as pointers) is applicable when the function f is actually
changing values of A and B due to some other operation like *A = *B + 2 in the function declaration. Am I
thinking right?
Both scenarios are can used equally only when A and B are not being
changed in f. Am I right?
Thanks a lot...