3 ms·
Array is not a pointer. Your description of indexing is not correct, neither is the phrase "array pointer" you invented. The machine code produced will calculat
by 36erhefg 11y ago
Array is not a pointer. Your description of indexing is not correct, neither is the phrase "array pointer" you invented. The machine code produced will calculate the offset differently for a pointer and an array.
- doppelganger27 11y agoLet 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
- 36erhefg 11y agoa 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-arrays-equivalent-in-c http://eli.thegreenplace.net/2009/10/21/are-pointers-and-arr...
- doppelganger27 11y agoInteresting read. Thanks :)