C and C++ are procedural and object-oriented programming languages respectively. C++ was created as an incremental improvement to C by adding object-oriented features while maintaining compatibility with C. Key differences include C++ supporting features like function overloading, polymorphism, encapsulation, and inheritance which are not possible in C. Additionally, C++ emphasizes data abstraction and limits data access compared to the open data model of C where data can be accessed by any function.