If you have a vector space, any vector space, you can define linear functions on that space. The set of all those functions is the dual space of the vector space. The important point here is that it doesn't matter what this original vector space is. You have a vector space V
One of the better "simple" discussions of dual spaces I've seen:
If you have a vector space, any vector space, you can define linear functions on that space. The set of all those functions is the dual space of the vector space. The important point here is that it doesn't matter what this original vector space is. You have a vector space V, you have a corresponding dual V∗.
OK, now you have linear functions. Now if you add two linear functions, you get again a linear function. Also if you multiply a linear function with a factor, you get again a linear function. Indeed, you can check that linear functions fulfill all the vector space axioms this way. Or in short, the dual space is a vector space in its own right.
But if V∗ is a vector space, then it comes with everything a vector space comes with. But as we have seen in the beginning, one thing every vector space comes with is a dual space, the space of all linear functions on it. Therefore also the dual space V∗ has a corresponding dual space, V∗∗, which is called double dual space (because "dual space of the dual space" is a bit long).
So we have the dual space, but we also want to know what sort of functions are in that double dual space. Well, such a function takes a vector from V∗, that is, a linear function on V, and maps that to a scalar (that is, to a member of the field the vector space is based on). Now, if you have a linear function on V, you already know a way to get a scalar from that: Just apply it to a vector from V. Indeed, it is not hard to show that if you just choose an arbitrary fixed element v∈V, then the function Fv:ϕ↦ϕ(v) indeed is a linear function on V∗, and thus a member of the double dual V∗∗. That way we have not only identified certain members of V∗∗ but in addition a natural mapping from V to V∗∗, namely F:v↦Fv. It is not hard to prove that this mapping is linear and injective, so that the functions in V∗∗ corresponding to vectors in V form a subspace of V∗∗. Indeed, if V is finite dimensional, it's even all of V∗∗. That's easy to see if you know that dim(V∗)=dimV and therefore dim(V∗∗)=dimV∗=dimV. On the other hand, since F is injective, dim(F(V))=dim(V). However for finite dimensional vector spaces, the only subspace of the same dimension as the full space is the full space itself. However if V is infinite dimensional, V∗∗ is larger than V. In other words, there are functions in V∗∗ which are not of the form Fv with v∈V.
Note that since V∗∗again is a vector space, it also has a dual space, which again has a dual space, and so on. So in principle you have an infinite series of duals (although only for infinite vector spaces they are all different).