Since a pointer variable points to another variable of the declared data type, you might expect the declaration to look like this: If pointers contain addresses, there should be a way to give them an address as a value.All variables have an address, a designation of where they are stored in memory.Unfortunately, you just have to remember the difference between declaration and dereferencing.
Let's say that we have code that just allocated space in memory for 20 integers: from it.
It is our only way to access all the long integers in the allocated space and we must be careful to work with the pointer so it accurately points to the elements we need.
Pointers are a way to get closer to memory and to manipulate the contents of memory directly.
In this chapter, we will discuss pointers and how pointers are used to work with memory.
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.
To do this, we have to in the statement is a dereference.
Using the same syntax to declare pointers and to dereference pointers can be a bit confusing, especially if the declaration is used with an initial value, like in the above example.
Since this space is contiguous, that is, created from sequential memory locations, we have essentially created an array of 5 integers.
We will examine this further, but we need to first figure out how to access each integer in this space by doing arithmetic on pointers. When a pointer is declared, the data type it points to is recorded.