Liste des Groupes | Revenir à cl c |
On 16/08/2024 01:08, Ben Bacarisse wrote:
>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:>
>
C 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.
Which is why, presumably, you didn't show the differences. Your
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.
You or he would have to go into more detail, such as an actual
example, to demonstrate whatever it is that you think is wrong about
passing a pointer argument by-reference.
>
I assume here that the language in the right column is not C.
>>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.
OK. So why do you agree with this:
>>C call-by-value call-by-reference
=============== =================
(pointer argument) F(p) (disallowed)
What is 'pointer argument' here?
Les messages affichés proviennent d'usenet.