Scott Mitchell scott+lists.freebsd at fishballoon.org
Sun Feb 20 12:47:55 GMT 2005

On Sun, Feb 20, 2005 at 08:41:30AM +0100, Gert Cuykens wrote:
> So if data is declared as a gchar *data; for example, then the value
> of data is a memory adress right ? So if A=data; and B=&data; then A
> and B are exactly the same result right ?

No.  A is a 'pointer to gchar' (or gchar*) and B is a 'pointer to pointer
to gchar' (or gchar**).  The '&data' syntax means 'the address of the data
variable', ie. the address of a gchar*, whereas data itself contains the
address of a gchar.

> Now why would anybody want a gchar when a integer is needed ? That is
> just making it more complicated then it already is?

Because the code in question deals with gchars (whatever they are) not
integers?  They won't necessarily be the same thing on different
architectures, or even different compilers on the same architecture.  Also,
the type is called 'gchar' presumably because it logically holds some kind
of character data, whereas an integer variable holds an integer.  Calling
them different things in the code helps to make it clear what the
programmer's intention is, even if the two types happen to have the same
representation on a given machine/compiler.

In any case, this stuff really has nothing to do with FreeBSD - you should
be asking these questions in a C/C++ programming group.



Scott Mitchell           | PGP Key ID | "Eagles may soar, but weasels
Cambridge, England       | 0x54B171B9 |  don't get sucked into jet engines"
scott at fishballoon.org | 0xAA775B8B |      -- Anon

More information about the freebsd-questions mailing list