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


Groups > comp.lang.c > #73059

Re: Pointers, constant values

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Pointers, constant values
Date 2015-10-16 12:18 -0700
Organization None to speak of
Message-ID <ln4mhq62rz.fsf@kst-u.example.com> (permalink)
References <5b2ab074-7644-4798-9b90-a3ae47e1f2b8@googlegroups.com> <ln4mhq7s4z.fsf@kst-u.example.com> <mvr9nb$ra4$1@dont-email.me> <KoaUx.29137$os5.11289@fx14.iad>

Show all headers | View raw


Lew Pitcher <lew.pitcher@digitalfreehold.ca> writes:
> On Friday October 16 2015 12:49, in comp.lang.c, "Bartc" <bc@freeuk.com>
> wrote:
[...]
>> But 'int *array' *is* a pointer to a single element. C allows you to
>> pass a pointer to an actual array, if not the array itself:
>> 
>>   int array_sum(int (*array)[], int n);
>
> That's one way of looking at it. OTOH, you can also interpret <<array>> above
> as a pointer-to a pointer-to an int. In other words, you haven't really
> passed "a pointer to an actual array", but instead have passed a pointer to a
> pointer (that, hopefully, points to at least one element of an array). Now,
> you have two problems instead of one. 

No, `array` is not a pointer to a pointer; it's actually a pointer to an
array.  The problem is that the array type is incomplete, so there's not
much you can do with it.

[...]

> I do concur with Keith for the most part, but I differ (slightly) in his
> characterization of the benefit of the "*(pointer+displacement)" argument.
> Where he says:
>> some will argue that using the [] notation is a reminder that it points to
>> an element of an array, not just a single int object. 
> I would rephrase that as
>   some will argue that using the [] notation is a reminder that it IS INTENDED 
>   to point to an element of an array, not just a single int object.
> (caps to show the difference in phrasing)
> Hopefully, when using the [] notation, both the caller and the called
> function /agree/ that the parameter is intended to point to an array.

Good point.  Using [] notation for a parameter doesn't *enforce*
anything on the caller.

The bottom line, I think, is that array manipulation in C is generally
done via pointers to individual array elements, with other elements
accessed by doing pointer arithmetic.  Array indexing is just a
syntactic wrapper around pointer arithmetic (a[i] means *(a+i)).

-- 
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

Pointers, constant values Alla _ <modelling.data@gmail.com> - 2015-10-16 00:49 -0700
  Re: Pointers, constant values Philip Lantz <prl@canterey.us> - 2015-10-16 01:49 -0700
  Re: Pointers, constant values James Kuyper <jameskuyper@verizon.net> - 2015-10-16 09:41 -0400
    Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 08:55 -0700
  Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 08:25 -0700
    Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 09:11 -0700
      Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 12:06 -0700
        Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 12:55 -0700
    Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 17:49 +0100
      Re: Pointers, constant values Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-16 13:23 -0400
        Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 19:34 +0100
          Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 12:05 -0700
        Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 12:18 -0700
      Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 12:13 -0700
        Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 20:33 +0100
          Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 13:01 -0700
            Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 21:09 +0100
              Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 13:41 -0700
          Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 21:07 +0100
            Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 21:20 +0100
              Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 22:02 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-16 22:21 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 14:39 -0700
                Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 15:26 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 15:44 -0700
                Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 16:58 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 17:28 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 22:50 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-16 15:14 -0700
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-17 01:23 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-17 19:39 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-17 22:42 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 00:31 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 02:11 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 11:59 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 12:12 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 12:28 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 23:16 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-18 23:34 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 01:45 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-19 11:51 +0100
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 12:55 +0100
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-19 13:51 +0100
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-19 06:02 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-19 07:02 -0700
                Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-19 15:39 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-19 08:54 -0700
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-19 09:14 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-19 10:21 -0700
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-19 12:57 -0700
                Re: Pointers, constant values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-19 21:20 +0000
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-20 20:50 -0700
                Re: Pointers, constant values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-21 04:58 +0000
                Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-19 08:40 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 20:17 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-17 16:44 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 11:52 +0100
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-18 05:15 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 21:54 +0100
                Re: Pointers, constant values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-18 16:09 -0700
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-18 07:55 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-18 21:47 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-18 15:37 -0700
                Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-19 00:10 +0100
                Re: Pointers, constant values supercat@casperkitty.com - 2015-10-18 19:04 -0700
        Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 21:13 +0100
      Re: Pointers, constant values Ian Collins <ian-news@hotmail.com> - 2015-10-17 11:27 +1300
        Re: Pointers, constant values Bartc <bc@freeuk.com> - 2015-10-17 00:56 +0100
  Re: Pointers, constant values Les Cargill <lcargill99@comcast.com> - 2015-10-16 12:37 -0500
    Re: Pointers, constant values James Kuyper <jameskuyper@verizon.net> - 2015-10-16 14:22 -0400
  Re: Pointers, constant values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-16 18:57 +0000
    Re: Pointers, constant values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-16 20:40 +0100
      Re: Pointers, constant values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-16 20:46 +0000
        Re: Pointers, constant values Keith Thompson <kst-u@mib.org> - 2015-10-16 14:24 -0700
          Re: Pointers, constant values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-19 12:43 +0000
  Re: Pointers, constant values Siri Cruz <chine.bleu@yahoo.com> - 2015-10-16 13:20 -0700
    Re: Pointers, constant values supercat@casperkitty.com - 2015-10-17 13:59 -0700

csiph-web