Assign Pointer To Pointer
Knowing the address does not help us work with the pointer or what it points to.
Once a pointer has an address of a variable name, we can use it to work with the variable it references.
We have discussed many abstractions that are built into the C programming language.
Most of these abstractions intentionally obscure something central to storage: the address in memory where something is stored.
You create space in memory using the In this allocation, we have created a space that is big enough to store 5 integers.If addresses are just numbers, then we can do computations with them.Indeed, we can do pointer arithmetic in an intuitive fashion.If pointers are arrays and arrays are pointers, then why are there two different concepts?Pointers and array are not the same thing and are really not treated the same by a C compiler. A C compiler will treat storage of dynamically allocated memory differently than an array initialized as a string. So, while it helps to be able to use notation that works for both, arrays and pointers are really different types of data with a variety of different uses.Pointers "point to" a variable (memory) with a typed value by referencing that variable, not by name, but by address. In the above examples, the variables are meant to contain the address of other variables, but they have not been initialized yet.Declaration Notation At first glance, the notation used to declare pointers might seem wrong.These two ideas are so very close that C treats them the same.We will demonstrate that Are Pointers and Arrays Really the Same Thing?We know variables in C are abstractions of memory, holding a value.That value is , defined by a data type definition in the variable declaration. A pointer is a variable whose value is an address, typed by its declaration. That fact might seem intuitive for other data types, but it's hard to remember for pointers.