Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!harvard!seismo!brl-tgr!tgr!Schauble@MIT-MULTICS.ARPA
From: Paul Schauble 
Newsgroups: net.lang.c
Subject: Array parameters
Message-ID: <7081@brl-tgr.ARPA>
Date: Tue, 8-Jan-85 00:59:57 EST
Article-I.D.: brl-tgr.7081
Posted: Tue Jan  8 00:59:57 1985
Date-Received: Wed, 9-Jan-85 03:06:26 EST
Sender: news@brl-tgr.ARPA
Organization: Ballistic Research Lab
Lines: 32

Pardon my lack of familiarity with modern C. I do hope someone will take
time to answer this:

From Joseph S.D. Yao  commenting on the declaration

      int a[5][6];

as a function formal parameter.

> Oh, and i think you may have missed the earlier comment that, despite
> the syntactic sugar of declaring the argument as if it were an array,
> it actually i s a pointer, in compatibility with early versions of C
> that wouldn't let you pass anything longer than a word/longword as an
> argument.  The pointer's size is correctly returned by sizeof().

Current C compilers allow passing a structure as a parameter. That's a
real  structure, not a pointer to a struct as in the old style.

I presume then that one can pass a real array in the same fashion.

then if 

     function (a);
     int a[5][6]

says that the parameter is "really" a pointer, for compatability, what
does the declaration look like when the parameter is really an array?

Or where did I go wrong?

          Paul
.