Liste des Groupes | Revenir à cl c |
Bart <bc@freeuk.com> writes:
On 15/08/2024 15:33, Ben Bacarisse wrote:Bart <bc@freeuk.com> writes:
On 15/08/2024 09:43, Tim Rentsch wrote:Bart <bc@freeuk.com> writes:>Which is why, presumably, you didn't show the differences. YourC call-by-value>
call-by-reference =============== =================
at call:
>
(array argument) F(A) H(A)
>
(pointer argument) F(p) (disallowed)
My posts were about passing *arrays* and the fact that C's
pass-by-value was remarkably similar to pass-by-reference.
post was all polemic not part of a collegiate discussion of the
similarities and differences.
However your entry for pointers is not correct:No, the entry is correct. H(p) would be (is?) disallowed when H's
parameter is a reference to an array.
Sorry, what language does the right-hand column pertain to? /Any/
language that has call-by-reference, or Tim's hypthetical language?
Tim said that case was "disallowed". You call that an error on his
part. What language did you have in mind that permits such a gross
warping of types? I would describe /any/ language that allowed it as
having a design error.
Or any that could be used to prove him right?
>
In general there is no reason, in a language with true
call-by-reference, why any parameter type T (which has the form U*,
a pointer to anything), cannot be passed by reference. It doesn't
matter whether U is an array type or not.
I can't unravel this. Take, as a concrete example, C++. You can't
pass a pointer to function that takes an array passed by reference.
You can, of course, pass a pointer by reference, but that is neither
here nor there.
>
Les messages affichés proviennent d'usenet.