By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,898 Members | 2,012 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,898 IT Pros & Developers. It's quick & easy.

Constness with pointers to pointers etc.

P: n/a
Hi,

I understand such pointers as 'const int* const ip' and 'const int*
ip' etc., but I'm getting confused when seeing things like 'const int*
const* ip' (i.e. with two or more asterisks). Clearly pointers to
pointers like this will require an expansion of the syntax to
accommodate for all of the possible extra combinations (i.e. must
specify the constness of the pointer ip and the constness of the
pointer, to which ip is pointing). Is there a reference (or someone
here) which/who can tell me how the syntax for such complicated
pointer declarations works?

Thanks,

Richard Hayden.
Jul 22 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Richard Hayden wrote in news:cd20cdc.0311230503.4ad10458
@posting.google.com:
Hi,

I understand such pointers as 'const int* const ip' and 'const int*
ip' etc., but I'm getting confused when seeing things like 'const int*
const* ip' (i.e. with two or more asterisks). Clearly pointers to
pointers like this will require an expansion of the syntax to
accommodate for all of the possible extra combinations (i.e. must
specify the constness of the pointer ip and the constness of the
pointer, to which ip is pointing). Is there a reference (or someone
here) which/who can tell me how the syntax for such complicated
pointer declarations works?


const int a;

is another way of writing

int const a;

Its the one and only exception to the rule that a qualifier (const or
volatile) goes after that which it qualifies.

int const * const * const * const cp_to_cp_to_cp_to_int;
int const * * const * const cp_to_cp_to_p_to_int;

From your statement above, the declaration that "confuses" you:

const int* const* ip;

rewrite it "correctly" (;-)/YMMV)

int const * const *ip;

then read it backwards "ip is a pointer to a const pointer to a
const int".

HTH

Rob.
--
http://www.victim-prime.dsl.pipex.com/
Jul 22 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.