In practice, the difference is in the location where the preprocessor searches for the included file.
#include <filename> the preprocessor searches in an implementation dependent manner, normally in search directories pre-designated by the compiler/IDE. This method is normally used to include standard library header files.
#include "filename" the preprocessor searches first in the same directory as the file containing the directive, and then follows the search path used for the
#include <filename> form. This method is normally used to include programmer-defined header files.
A more complete description is available in the GCC documentation on search paths.