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


Groups > comp.lang.c > #101065

Re: Using == operator

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Using == operator
Date 2017-01-03 16:30 -0800
Organization None to speak of
Message-ID <ln37gzu0nz.fsf@kst-u.example.com> (permalink)
References (9 earlier) <o4h53l$umh$1@dont-email.me> <lnshozu7b7.fsf@kst-u.example.com> <640f8d29-0683-4614-9cde-c22e80e4dd00@googlegroups.com> <lnfukzu3fg.fsf@kst-u.example.com> <2745f901-6902-4c40-870b-e9adbf3a4a5c@googlegroups.com>

Show all headers | View raw


supercat@casperkitty.com writes:
> On Tuesday, January 3, 2017 at 5:29:49 PM UTC-6, Keith Thompson wrote:
>> supercat writes:
>> > On Tuesday, January 3, 2017 at 4:06:27 PM UTC-6, Keith Thompson wrote:
>> >> Even if we assume that that corresponds to `if (apple_count)`, what's
>> >> the corresponding English for if(node->next)?
>> >
>> > Since every pointer which is used in such a context is required to either
>> > be a valid pointer or a null pointer, the English would be "If the object
>> > pointed to by 'node' has a valid 'next' pointer, then...."  Although the
>> > code is in a literal sense comparing a pointer with a null pointer, such
>> > a comparison is merely the means by which code determines that a pointer is
>> > valid.
>> 
>> A null pointer is valid in some contexts (including this one), there are
>> invalid pointers other than the null pointer, and claiming that
>> 
>>     if(node->next)
>> 
>> can be read as
>> 
>>     If the object pointed to by 'node' has a valid 'next' pointer,
>>     then....
>> 
>> hardly supports the claim that it "reads like English".
>
> I should have said "every pointer is either a valid pointer *to an object*
> or a null pointer" but the principle holds.  So if you prefer, the test
> is for whether field "next" points to any object, as distinct from testing
> whether field "next" holds the only value it could hold without pointing
> to an object.

Of course node->next could also point just past the end of some array
object.

The claim was that `if(node->next)` "reads like English".  Do you
think it does, given the number of iterations we've gone through
to get an correct English description that's several times as long
as the code?  I don't, though it reads perfectly well as C (even
if it's not an idiom that I'd choose to use myself).

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

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


Thread

guidelines for pointer check Thiago Adams <thiago.adams@gmail.com> - 2016-12-29 12:53 -0800
  Re: guidelines for pointer check Ian Collins <ian-news@hotmail.com> - 2016-12-30 09:58 +1300
  Re: guidelines for pointer check Keith Thompson <kst-u@mib.org> - 2016-12-29 13:39 -0800
    Re: guidelines for pointer check Thiago Adams <thiago.adams@gmail.com> - 2016-12-29 15:24 -0800
      Re: guidelines for pointer check Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2016-12-29 19:05 -0500
        Re: guidelines for pointer check Thiago Adams <thiago.adams@gmail.com> - 2016-12-30 05:27 -0800
          Re: guidelines for pointer check Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-12-30 14:35 +0000
          Re: guidelines for pointer check supercat@casperkitty.com - 2016-12-30 10:38 -0800
        Re: guidelines for pointer check Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-02 02:28 -0800
      Re: guidelines for pointer check Keith Thompson <kst-u@mib.org> - 2016-12-29 16:19 -0800
  Re: guidelines for pointer check Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-12-29 13:58 -0800
  guidelines for pointer check asetofsymbols@gmail.com - 2016-12-30 05:35 -0800
  Re: guidelines for pointer check raltbos@xs4all.nl (Richard Bos) - 2017-01-01 10:47 +0000
  Re: guidelines for pointer check Noob <root@127.0.0.1> - 2017-01-02 14:19 +0100
    Re: guidelines for pointer check David Brown <david.brown@hesbynett.no> - 2017-01-02 14:28 +0100
      Re: guidelines for pointer check Noob <root@127.0.0.1> - 2017-01-02 17:35 +0100
        Re: Using == operator Noob <root@127.0.0.1> - 2017-01-02 19:03 +0100
          Re: Using == operator David Brown <david.brown@hesbynett.no> - 2017-01-02 23:41 +0100
            Re: Using == operator Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-02 14:54 -0800
              Re: Using == operator Keith Thompson <kst-u@mib.org> - 2017-01-02 15:57 -0800
                Re: Using == operator Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-01-03 16:31 -0500
                Re: Using == operator Keith Thompson <kst-u@mib.org> - 2017-01-03 14:06 -0800
                Re: Using == operator Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-01-03 14:44 -0800
                Re: Using == operator Keith Thompson <kst-u@mib.org> - 2017-01-03 15:05 -0800
                Re: Using == operator Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-01-04 16:42 +0000
                Re: Using == operator Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 11:46 -0800
                Re: Using == operator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-01-03 21:22 -0700
                Re: Using == operator supercat@casperkitty.com - 2017-01-03 15:23 -0800
                Re: Using == operator Keith Thompson <kst-u@mib.org> - 2017-01-03 15:30 -0800
                Re: Using == operator supercat@casperkitty.com - 2017-01-03 16:02 -0800
                Re: Using == operator Keith Thompson <kst-u@mib.org> - 2017-01-03 16:30 -0800
                Re: Using == operator Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 11:26 -0800
                Re: Using == operator raltbos@xs4all.nl (Richard Bos) - 2017-01-04 09:55 +0000
                Re: Using == operator Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-01-04 16:49 +0000
                Re: Using == operator raltbos@xs4all.nl (Richard Bos) - 2017-01-10 01:28 +0000
                Re: Using == operator Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-01-09 19:12 -0700
                Re: Using == operator Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 09:12 -0800
                Re: Using == operator Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 09:54 -0800
              Re: Using == operator raltbos@xs4all.nl (Richard Bos) - 2017-01-03 21:08 +0000
                Re: Using == operator Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-15 06:44 -0800
  Re: guidelines for pointer check Anand Hariharan <mailto.anand.hariharan@gmail.com> - 2017-01-04 08:54 -0800
    Re: guidelines for pointer check Tim Rentsch <txr@alumni.caltech.edu> - 2017-01-14 00:51 -0800

csiph-web