A C book says "When an array identifier appears in an expression, the type of the identifier is converted from "array of T' to "pointer to T," and the value of the identifier is converted to a pointer to the first element of the array".
However the C programming language ( by Kernighan and Ritchie ) says "By definition, the value of a variable or expression of type array is the address of element zero of the array".
- So is it correct to say "that an array identifier is converted to a pointer that points to the first element of the array or that an array identifier is converted to the address of the first element"?
This got me a bit confused...
Consider this small code :
int a = 10;
&a;
2)Is &a a "pointer" in the general sense ( even if a pointer is technically a variable that holds the address of another variable ) ? So is an address of an object considered a "pointer" to that location in the general sense even if it is not given to a pointer variable ?
3)If I do something like ((&a) + 1) I'm technically doing pointer arithmetics, so it kind of implies that &a is a pointer in a certain way, doesn't it ?