Deutsch   English   Français   Italiano  
<20240710213910.00000afd@yahoo.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Michael S <already5chosen@yahoo.com>
Newsgroups: comp.lang.c
Subject: Re: technology discussion =?UTF-8?Q?=E2=86=92?= does the world need
 a "new" C ?
Date: Wed, 10 Jul 2024 21:39:10 +0300
Organization: A noiseless patient Spider
Lines: 39
Message-ID: <20240710213910.00000afd@yahoo.com>
References: <v66eci$2qeee$1@dont-email.me>
	<v6ard1$3ngh6$4@dont-email.me>
	<v6b0jv$3nnt6$1@dont-email.me>
	<87h6d2uox5.fsf@nosuchdomain.example.com>
	<v6d779$6rk5$2@dont-email.me>
	<v6e76u$c0i9$1@dont-email.me>
	<v6esqm$fian$2@dont-email.me>
	<v6f7vg$hgam$1@dont-email.me>
	<20240707164747.258@kylheku.com>
	<v6gl83$s72a$1@dont-email.me>
	<v6h8ao$ur1v$1@dont-email.me>
	<v6jhk3$1drd6$1@dont-email.me>
	<v6jiud$1dsjb$1@dont-email.me>
	<877cdur1z9.fsf@bsb.me.uk>
	<v6joi4$1epoj$1@dont-email.me>
	<871q42qy33.fsf@bsb.me.uk>
	<v6k6i0$1h4d3$1@dont-email.me>
	<87ed82p28y.fsf@bsb.me.uk>
	<v6m03l$1tf05$1@dont-email.me>
	<87r0c1nzjj.fsf@bsb.me.uk>
	<v6m716$1urj4$1@dont-email.me>
	<86ikxd8czu.fsf@linuxsc.com>
	<v6mggd$20g3f$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 10 Jul 2024 20:39:14 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="ede5e04617bf4b2d7202b943eeeebf3c";
	logging-data="2136548"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/ZCr7zzakU3/IGJm2yBiaQE3LG51vOSqo="
Cancel-Lock: sha1:5HfODVAkpyKKYdOpSyDH4NuMqZ8=
X-Newsreader: Claws Mail 4.1.1 (GTK 3.24.34; x86_64-w64-mingw32)
Bytes: 3491

On Wed, 10 Jul 2024 18:30:54 +0100
bart <bc@freeuk.com> wrote:

> On 10/07/2024 16:48, Tim Rentsch wrote:
> > bart <bc@freeuk.com> writes:
> >   
> >> I earlier asked this:
> >>
> >> "So if arrays aren't passed by value in C, and they aren't passed
> >> by reference, then how the hell ARE they passed?!"  
> > 
> > They aren't.  C allows lots of things to be passed as an argument
> > to a function:  several varieties of numeric values, structs,
> > unions, and pointers, including both pointers to object types and
> > pointers to function types.  C does not have a way for a function
> > to take an argument that is either an array or a function.  There
> > is a way to take pointers to those things, but not the things
> > themselves.  Arrays and functions are second-class values in C.  
> 
> That's a good point. It's not just arrays that can't be passed by
> value (because the language says so) but also functions (because its
> not meaningful).
> 
> Yet, although pointers to arrays and function can be passed (without 
> even doing anything special like using &), you are not allowed to say 
> that anything is passed by reference in C!
> 
> The automatic conversion to a pointer, which is also a feature of
> true pass-by-reference, doesn't count.
> 
> Not needing an explicit deref inside the callee (another
> characteristic of pass-by-reference) doesn't count either.

It does not count, because automatic conversion to a pointer is not
something that happens only during parameter passing. For arrays, it
happens in all contexts except sizeof(). For functions, it happens in
all contexts except function call. Or, may be, including function call,
in this case (but not in case of arrays) it depends on point of view.