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


Groups > comp.lang.c++ > #86132

Re: “Why do arrays start at 0?"

From Thomas Koenig <tkoenig@netcologne.de>
Newsgroups comp.lang.fortran, comp.lang.c++
Subject Re: “Why do arrays start at 0?"
Date 2022-08-28 08:14 +0000
Organization news.netcologne.de
Message-ID <tef85g$28i$1@newsreader4.netcologne.de> (permalink)
References <tebblf$2gpm$1@dont-email.me> <tedr4l$1cc0$1@gioia.aioe.org> <tedt6n$757$1@gioia.aioe.org> <tef7ci$12uj$1@gioia.aioe.org>

Cross-posted to 2 groups.

Show all headers | View raw


Fred. Zwarts <F.Zwarts@KVI.nl> schrieb:
> Op 27.aug..2022 om 22:01 schreef Lynn McGuire:
>> On 8/27/2022 2:26 PM, Fred. Zwarts wrote:
>>> Op 26.aug..2022 om 22:49 schreef Lynn McGuire:
>>>> “Why do arrays start at 0?"
>>>> https://buttondown.email/hillelwayne/archive/why-do-arrays-start-at-0/
>>>>
>>>> "It's not the reason you think. No, it's not that reason either.”
>>>>
>>>> My Fortran starts at one.  My C++ starts at zero.  This has made my 
>>>> life hell.
>>>>
>>>> Lynn
>>>>
>>>
>>> I assumed that it was done because in C x[i] is equivalent to *(x+i).
>> 
>> Yup.  So Fortran x(i) is equivalent to *(x+i-1).  Or, the x is 
>> subtracted from first: x--; *(x+i);.
>> 
>> Lynn
>> 
>
> I don't understand the idea of x--. Why modifying x? What happens if x 
> is indexed later again?

The idea is to use this modified pointer for one-based array
accesses, so that it would be possible to translate Fortran's A(1)
into a[1] on the C side, or A(N) into a[n].

The correct way to do this according to the C standard would be to
translate A(N) into a[n-1] on the C side.  There are several reasons
why this might not have been done:  Readability of the generated
code (although f2c code is already hard to read), because it made
the code slower with compilers of the day, and probably because it
"just worked" with the compilers.

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


Thread

“Why do arrays start at 0?" Lynn McGuire <lynnmcguire5@gmail.com> - 2022-08-26 15:49 -0500
  Re: “Why do arrays start at 0?" Gary Scott <garylscott@sbcglobal.net> - 2022-08-26 16:56 -0500
    Re: “Why do arrays start at 0?" Mr Flibble <flibble@reddwarf.jmc.corp> - 2022-08-27 00:46 +0100
      Re: “Why do arrays start at 0?" d thiebaud <thiebauddick2@aol.com> - 2022-08-26 22:29 -0400
        Re: “Why do arrays start at 0?" Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-26 22:05 -0700
          Re: “Why do arrays start at 0?" Mr Flibble <flibble@reddwarf.jmc.corp> - 2022-08-27 12:06 +0100
    Re: Re: “Why do arrays start at 0?" scott@slp53.sl.home (Scott Lurndal) - 2022-08-27 14:28 +0000
  Re: “Why do arrays start at 0?" Louis Krupp <lkrupp@invalid.pssw.com.invalid> - 2022-08-26 16:08 -0600
  Re: “Why do arrays start at 0?" Gawr Gura <gawrgura@mail.hololive.com> - 2022-08-26 15:18 -0700
  Re: “Why do arrays start at 0?" Mr Flibble <flibble@reddwarf.jmc.corp> - 2022-08-27 00:44 +0100
  Re: “Why do arrays start at 0?" Thomas Koenig <tkoenig@netcologne.de> - 2022-08-27 05:47 +0000
    Re: “Why do arrays start at 0?" d thiebaud <thiebauddick2@aol.com> - 2022-08-27 15:19 -0400
      Re: “Why do arrays start at 0?" Thomas Koenig <tkoenig@netcologne.de> - 2022-08-27 22:22 +0000
  Re: “Why do arrays start at 0?" "Fred. Zwarts" <F.Zwarts@KVI.nl> - 2022-08-27 21:26 +0200
    Re: “Why do arrays start at 0?" Lynn McGuire <lynnmcguire5@gmail.com> - 2022-08-27 15:01 -0500
      Re: “Why do arrays start at 0?" Thomas Koenig <tkoenig@netcologne.de> - 2022-08-27 22:24 +0000
        Re: “Why do arrays start at 0?" Lynn McGuire <lynnmcguire5@gmail.com> - 2022-08-27 22:40 -0500
          Re: “Why do arrays start at 0?" Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2022-08-27 22:07 -0700
          Re: “Why do arrays start at 0?" Thomas Koenig <tkoenig@netcologne.de> - 2022-08-28 07:50 +0000
            Re: “Why do arrays start at 0?" David Brown <david.brown@hesbynett.no> - 2022-08-28 11:52 +0200
          Re: “Why do arrays start at 0?" Paavo Helde <eesnimi@osa.pri.ee> - 2022-08-28 19:43 +0300
      Re: “Why do arrays start at 0?" "Fred. Zwarts" <F.Zwarts@KVI.nl> - 2022-08-28 10:01 +0200
        Re: “Why do arrays start at 0?" Thomas Koenig <tkoenig@netcologne.de> - 2022-08-28 08:14 +0000
  Re: “Why do arrays start at 0?" Bonita Montero <Bonita.Montero@gmail.com> - 2022-08-28 11:07 +0200
  Re: ???Why do arrays start at 0?" Juha Nieminen <nospam@thanks.invalid> - 2022-08-29 11:15 +0000

csiph-web