You didn't mention something important: C has no abstraction for strings, just pointers. This is very hard for newbies to understand.
Here's a very interesting paper written by Stroustrup on this...