What is the difference between: int a (*daytab)[13] and int a*daytab[13]

T

Tomás Ó hÉilidhe

int (*)[13] Pointer to an array of 13 int's.


int *[13] Array of 13 pointers to int's.
 
B

Bartc

[What is the difference between: int a (*daytab)[13] and int a
*daytab[13]]

As written: nothing, they're both syntax errors.

On the other hand, int (*daytab)[13] is a pointer to an array of 13 ints.

While int *daytab[13] is an array of 13 pointers to ints.

(Thanks to a program cdecl.exe I've just downloaded. Otherwise I wouldn't
have a clue either. And the existence of such a program suggests I'm not
alone!)
 
S

santosh

magicman said:
What is the difference between: int a (*daytab)[13] and int a
*daytab[13]
thx

In a declaration the first one declares daytab as a pointer to an array
of 13 ints. The second declares daytab as an array of 13 int*.

For the first one

daytab[n]

will be of type int and for the second one

daytab[n]

will be of type int*.

PS. For 0 <= n <= 12 of course.
 
B

Ben Bacarisse

santosh said:
magicman said:
What is the difference between: int a (*daytab)[13] and int a
*daytab[13]
thx

In a declaration the first one declares daytab as a pointer to an array
of 13 ints. The second declares daytab as an array of 13 int*.

I guess you are ignoring the "a" in both!
For the first one

daytab[n]

will be of type int

It will be of type "array of 13 int". It will be converted to an int
pointer in most contexts hence, I suspect, the confusion.
and for the second one

daytab[n]

will be of type int*.

Yes, in both cases daytab[n] could be further subscripted or passed to
function that expects and int *.
 
S

santosh

Ben said:
santosh said:
magicman said:
What is the difference between: int a (*daytab)[13] and int a
*daytab[13]
thx

In a declaration the first one declares daytab as a pointer to an
array of 13 ints. The second declares daytab as an array of 13 int*.

I guess you are ignoring the "a" in both!

Oops! I'm starting to really believe the research indications that the
brain "reads" what it "wants to read", or "completes" sentences from
partially reading them. Thanks once again for the correction.
For the first one

daytab[n]

will be of type int

It will be of type "array of 13 int". It will be converted to an int
pointer in most contexts hence, I suspect, the confusion.
and for the second one

daytab[n]

will be of type int*.

Yes, in both cases daytab[n] could be further subscripted or passed to
function that expects and int *.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,898
Latest member
BlairH7607

Latest Threads

Top