Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #6995

Re: References in C

From jt@toerring.de (Jens Thoms Toerring)
Newsgroups comp.lang.c
Subject Re: References in C
Date 2011-06-26 22:54 +0000
Organization Freie Universitaet Berlin
Message-ID <96prkiFafhU1@mid.uni-berlin.de> (permalink)
References (5 earlier) <ruKdnSlNPq1YnpjTnZ2dnUVZ_uidnZ2d@giganews.com> <96kgcnFb9tU11@mid.individual.net> <iu86kn$att$1@dont-email.me> <iu89s5$vja$1@dont-email.me> <iu8bkk$bg0$1@dont-email.me>

Show all headers | View raw


Shao Miller <sha0.miller@gmail.com> wrote:
> On 6/26/2011 4:55 PM, BartC wrote:
> >
> > "Shao Miller" <sha0.miller@gmail.com> wrote in message
> > news:iu86kn$att$1@dont-email.me...
> >> On 6/24/2011 5:11 PM, Ian Collins wrote:
> >>> On 06/25/11 09:38 AM, Joe Wright wrote:
> >>>> On 6/24/2011 17:09, jacob navia wrote:
> >>>>
> >>>> [ Snipping everything }
> >>>>
> >>>> What advantage does C++ reference have? None say I. Pass&var and accept
> >>>> *var and all is solved simply. Tell me where I'm wrong.
> >>>
> >>> For one, you don't have to test for NULL,
> >>
> >> (By which you obviously mean a null pointer value. I don't use 'if (p ==
> >> NULL)' but 'if (!p)'.)
> >>
> >> But I still don't fully perceive this particular benefit, here.
> >
> > The benefit (as I understand it) is that the code doesn't even need to be
> > aware that something is a pointer:
> >
> > a = b+c*d;
> >
> > instead of:
> >
> > if(a && b && c && d) *a=*b+*c*(*d);
> > else ... /* big headache... */
> >

> That mixes the two points or seems to have more to do with the second 
> point that Mr. I. Collins had made, as far as I can tell.  I was 
> specifically responding to the first point with that portion of the 
> response that you quoted.

> A callee checking for a null pointer parameter needn't happen if we 
> assume that a callee is never passed a null pointer argument, with or 
> without references, right?  As a language feature, I don't understand 
> "references" as providing an advantage with regards to this.

> Do these "references" inject an implicit assertion before every call, 
> thus crashing the program (during execution) in the caller before 
> reaching the callee?

No, it's much simpler (at least if Jacob implemented it the
same way it's done in C++): you can only create a reference
to an existing object since it must be initialized at crea-
tion and a reference can't be made to reference anything else
after it has been created. So neither

   int &ir;

is legal (missing initialization) nor

   int i, j;
   int &ir = i;
   ir = j;

(attempt to change what the reference references). This also
implies that the reference never has a "wider scope" than
what it references and it's thus guaranteed that when what
the reference "points" to goes out of scope also the refe-
rence does. That way you simply have no chance to pass on
a reference that does not "point" to an existing object to
a function. Thus you don't have to worry in the callee that
you might have received the equivalent of a NULL pointer.
Of course, that makes references as arguments unsuitable
for cases where receiving a "NULL pointer" is actually a
reasonable possibility.
                               Regards, Jens
-- 
  \   Jens Thoms Toerring  ___      jt@toerring.de
   \__________________________      http://toerring.de

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

References in C jacob navia <jacob@spamsink.net> - 2011-06-24 10:42 +0200
  Re: References in C BGB <cr88192@hotmail.com> - 2011-06-24 02:53 -0700
    Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-24 22:10 +1200
  Re: References in C "BartC" <bc@freeuk.com> - 2011-06-24 11:14 +0100
    Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-24 16:59 +0200
  Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-24 09:26 -0400
    Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-24 20:08 +0200
      Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-24 11:40 -0700
      Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-24 14:53 -0400
      Re: References in C jt@toerring.de (Jens Thoms Toerring) - 2011-06-24 20:44 +0000
        Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-24 23:09 +0200
          Re: References in C Joe Wright <joewwright@comcast.net> - 2011-06-24 17:38 -0400
            Re: References in C "BartC" <bc@freeuk.com> - 2011-06-24 22:58 +0100
            Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-25 10:11 +1200
              Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-26 17:00 -0500
                Re: References in C "BartC" <bc@freeuk.com> - 2011-06-26 22:55 +0100
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-26 18:25 -0500
                Re: References in C "BartC" <bc@freeuk.com> - 2011-06-26 23:38 +0100
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-26 19:19 -0500
                Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-27 01:27 +0200
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-26 19:13 -0700
                Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-27 16:50 +1200
                Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-27 06:55 +0200
                Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-27 17:10 +1200
                Re: References in C lawrence.jones@siemens.com - 2011-06-27 10:04 -0400
                Re: References in C jt@toerring.de (Jens Thoms Toerring) - 2011-06-26 22:54 +0000
                Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-27 01:29 +0200
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-26 19:39 -0500
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-06-27 07:16 +0000
                Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-27 09:46 +0200
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-27 12:03 -0400
                Re: References in C Stephen Sprunk <stephen@sprunk.org> - 2011-06-27 12:09 -0500
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-06-27 22:16 +0000
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-27 11:57 -0400
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-06-27 22:21 +0000
                Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-28 13:59 +1200
                Re: References in C Ike Naar <ike@iceland.freeshell.org> - 2011-06-27 07:05 +0000
                Re: References in C jt@toerring.de (Jens Thoms Toerring) - 2011-06-27 20:10 +0000
                Re: References in C Stephen Sprunk <stephen@sprunk.org> - 2011-06-27 16:39 -0500
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-26 15:23 -0700
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-26 18:57 -0500
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-26 19:21 -0700
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-27 09:40 -0400
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-27 09:00 -0700
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-06-27 23:15 +0000
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-28 22:50 -0700
                Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-06-29 17:46 +0000
                Re: References in C Dr Nick <3-nospam@temporary-address.org.uk> - 2011-06-29 20:23 +0100
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-06-29 22:35 +0000
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-29 16:52 -0700
                Re: References in C Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-07-03 01:31 +0300
                Re: References in C Chad <cdalten@gmail.com> - 2011-07-02 17:20 -0700
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-29 18:54 -0500
                Re: References in C Michael Press <rubrum@pacbell.net> - 2011-06-30 10:32 -0700
                Re: References in C "io_x" <a@b.c.invalid> - 2011-07-01 10:19 +0200
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-07-01 19:21 +0000
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-07-01 12:31 -0700
                Re: References in C pacman@kosh.dhis.org (Alan Curry) - 2011-07-01 19:32 +0000
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-07-01 13:05 -0700
                Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-07-01 23:58 +0000
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-07-01 20:13 -0500
                Re: References in C Michael Press <rubrum@pacbell.net> - 2011-07-01 12:44 -0700
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-07-01 15:57 -0500
                Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-07-03 14:54 -0700
                Re: References in C Michael Press <rubrum@pacbell.net> - 2011-07-03 20:29 -0700
                Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-07-04 16:05 -0700
                Re: References in C Michael Press <rubrum@pacbell.net> - 2011-07-05 08:32 -0700
                Re: References in C Lowell Gilbert <lgusenet@be-well.ilk.org> - 2011-07-05 15:34 -0400
                Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-07-06 15:30 -0700
                Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-27 13:27 +1200
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-27 09:02 -0400
              Re: References in C "Joel C. Salomon" <joelcsalomon@gmail.com> - 2011-06-26 18:35 -0400
                Re: References in C James Kuyper <jameskuyper@verizon.net> - 2011-06-26 19:11 -0400
                Re: References in C "Joel C. Salomon" <joelcsalomon@gmail.com> - 2011-06-28 00:52 -0400
                Re: References in C James Kuyper <jameskuyper@verizon.net> - 2011-06-28 07:56 -0400
          Re: References in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-06-24 22:52 +0100
          Re: References in C jt@toerring.de (Jens Thoms Toerring) - 2011-06-24 23:58 +0000
  Re: References in C Tom St Denis <tom@iahu.ca> - 2011-06-24 06:48 -0700
    Re: References in C David Resnick <lndresnick@gmail.com> - 2011-06-24 07:14 -0700
      Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-24 16:58 +0200
        Re: References in C Tom St Denis <tom@iahu.ca> - 2011-06-24 09:08 -0700
          Re: References in C Stephen Sprunk <stephen@sprunk.org> - 2011-06-24 11:33 -0500
          Re: References in C gazelle@shell.xmission.com (Kenny McCormack) - 2011-06-24 17:47 +0000
            Re: References in C JG <jgrove24@hotmail.com> - 2011-07-01 14:24 -0700
          Re: References in C Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-06-25 04:39 -0700
            Re: References in C BGB <cr88192@hotmail.com> - 2011-06-25 16:15 -0700
              Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-26 11:27 +1200
                Re: References in C BGB <cr88192@hotmail.com> - 2011-06-25 19:13 -0700
                Re: References in C cri@tiac.net (Richard Harter) - 2011-06-26 04:22 +0000
                Re: References in C Robert Wessel <robertwessel2@yahoo.com> - 2011-06-26 01:31 -0500
                Re: References in C BGB <cr88192@hotmail.com> - 2011-06-26 00:03 -0700
                Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-26 13:54 -0500
                Re: References in C luser- -droog <mijoryx@yahoo.com> - 2011-07-07 11:19 -0700
            Re: References in C Dr Nick <3-nospam@temporary-address.org.uk> - 2011-06-26 08:15 +0100
    Re: References in C Ike Naar <ike@sverige.freeshell.org> - 2011-06-24 16:08 +0000
      Re: References in C Tom St Denis <tom@iahu.ca> - 2011-06-24 11:12 -0700
        Re: References in C Ike Naar <ike@iceland.freeshell.org> - 2011-06-24 21:42 +0000
  Re: References in C Stephen Sprunk <stephen@sprunk.org> - 2011-06-24 11:49 -0500
  Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-24 13:17 -0700
    Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-24 16:46 -0400
      Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-24 14:32 -0700
        Re: References in C Gareth Owen <gwowen@gmail.com> - 2011-06-25 09:39 +0100
          Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-07-04 17:38 -0400
  Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-06-24 16:33 -0400
    Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-24 23:04 +0200
  Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-26 17:53 -0700
    Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-27 17:04 +1200
      Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-27 14:28 -0700
        Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-28 14:11 +1200
          Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-28 16:27 -0700
          Re: References in C Michael Press <rubrum@pacbell.net> - 2011-06-29 13:41 -0700
            Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-06-29 21:15 +0000
              Re: References in C Michael Press <rubrum@pacbell.net> - 2011-06-30 09:26 -0700
                Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-06-30 20:55 +0000
                Re: References in C Michael Press <rubrum@pacbell.net> - 2011-06-30 16:20 -0700
                Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-06-30 23:45 +0000
                Re: References in C James Kuyper <jameskuyper@verizon.net> - 2011-07-01 07:58 -0400
    Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-27 10:43 +0200
      Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-27 08:32 -0700
      Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-28 11:01 -0700
        Re: References in C jacob navia <jacob@spamsink.net> - 2011-06-28 22:17 +0200
          Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-29 09:05 +1200
          Re: References in C Keith Thompson <kst-u@mib.org> - 2011-06-28 22:24 -0700
          Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-29 01:07 -0700
            Re: References in C Ian Collins <ian-news@hotmail.com> - 2011-06-29 21:16 +1200
              Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-06-29 17:46 +0000
              Re: References in C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-29 12:19 -0700
          Re: References in C sandeep <nospam@nospam.com> - 2011-07-03 20:53 +0000
            Re: References in C Chad <cdalten@gmail.com> - 2011-07-03 14:02 -0700
            Re: References in C Keith Thompson <kst-u@mib.org> - 2011-07-03 14:33 -0700
              Re: References in C jacob navia <jacob@spamsink.net> - 2011-07-04 00:22 +0200
                Re: References in C Keith Thompson <kst-u@mib.org> - 2011-07-04 13:41 -0700
              Re: References in C gazelle@shell.xmission.com (Kenny McCormack) - 2011-07-04 00:00 +0000
              Re: References in C Seebs <usenet-nospam@seebs.net> - 2011-07-04 00:20 +0000
      Re: References in C Shao Miller <sha0.miller@gmail.com> - 2011-07-04 17:43 -0400

csiph-web