Hacker News new | ask | show | jobs
by doppelganger27 3923 days ago
Let me clarify with an example. Suppose you have an array:

  int a[10]
There is a section of memory of size sizeof(int) * 10 somewhere, and the variable a is a * int that points to that section. When someone does this:

  int x = a[2]
It is equivalent to:

  int x = *(a+(sizeof(int)*2))
When I said "array pointer" in my previous comment, all it meant was the memory address that the variable (which is an array) points to (in the example, the variable "a")

Edit: missing paren

1 comments

a is a label, or an alias of a memory address. It is not a pointer. ( Your third example has a mistake, the correct increment is: a+2, because pointer arithmetic increments in object size not byte size )

Read this:http://eli.thegreenplace.net/2009/10/21/are-pointers-and-arr...

Interesting read. Thanks :)