Q:

What is the difference between nullptr and nullptr_t in C++?

Which one should I use? Any advantages if I use one over the other? 

A:

nullptr is the constant, nullptr_t is its type. Use each one in contexts where you need respectively a null pointer, or the type of a null pointer.

A:

In exactly the same way that true is a C++ keyword literal of type bool, nullptr is a C++ keyword literal of type std::nullptr_t.

A:

"... if I use one over the other?"

You can't (use one over the other) they're orthogonal by these means:
nullptr_t is the type used to represent a nullptr
nullptr is (1)effectively a constant of type nullptr_t that represents a specific compiler implementation defined value.
See the C++11 standards section:

2.14.7 Pointer literals

The pointer literal is the keyword nullptr. It is a prvalue of type std::nullptr_t.
  [ Note: std::nullptr_t
  is a distinct type that is neither a pointer type nor a pointer to member type; rather, a prvalue of this type is a null pointer constant and can be converted to a null pointer value or null member pointer value. See 4.10
  and 4.11. — end note ]

1) Just like the this keyword nullptr stands for an rvalue rather than being of const type. Thus, decltype(nullptr) can be a non-const type. With Visual C++ 2015 and MinGW g++ 5.1 it is non-const.

