The difference between the two forms is in the location where the preprocessor searches for the file to be included.
The preprocessor searches in an implementation-dependent manner, it searches directories pre-designated by the compiler. This method is usually used to include standard library header files.
The preprocessor searches in the same directory as the file containing the directive. If this fails, then it starts behaving like the #include <filename> form. This method is usually used to include your own header files.