*pc is the value pointed at the pc address whereas, // &c is an address.
*pc is a value stored at the pc address and, // c is also a value (not address).
In this post we will start with variables and memory. The location that is allocated is the variable’s memory address.
Most programmers will say a variable is a name for a piece of data that can change in a program.
Declaring a pointer is like declaring any other variable. The size of a pointer, the number of bytes that are used to store each pointer, is dependent on the architecture of the machine.
For 32-bit systems, pointers will be 4-bytes or 32-bits.If you were to uncomment the last few lines and try to compile that code it would give “assignment from incompatible pointer type” errors and wouldn’t compile.You can only assign addresses to pointers of the same type.The , what actually happens is the compiler allocates memory for the entire array and then assigns a pointer to the array variable, in this case myarray, holding the address of the first element in the array.Some people get confused and start thinking you can interchange pointers and arrays. You can assign an array variable to a pointer of the same type but not the opposite.For 64 bit systems, like most are these days, pointers will be 8-bytes or 64-bits. It is telling the compiler, “I have the address of a variable in the pointer.The // declare an int pointer name ptr int *ptr; // declare an int with the value of 1 int val = 1; // get the address of the val variable and store it in ptr ptr = &val; // dereference the ptr variable to get the int value at the address stored int deref = *ptr; // dereference the ptr variable to set the int value at the address stored *ptr = 2; operator to get the address-of a variable of the correct type. I want to access that pointed-to address either to get a value or set a value “.Dereferencing can be used to either indirectly get a value from the pointer address or to assign a value to the pointer address. In this example we have used dereferencing to both get and set values.Some people get confused and think dereference means getting a value. Dereference means to indirectly access the address stored in the pointer.There are two main operators for working with pointers.The operator is used when declaring a pointer and when dereferencing a pointer.