Although C++ is an improved version of C, there are a lot of differences in behavior and functionality between C and C++.

- C does not have any concept of classes or objects. It is procedure and function oriented. There is no concept of access through objects and a structure is the only data type where there is a access through a compacted variable. C++ is object oriented.
- C structures have a different behavior than C++ structures. Structures in C cannot contain functions.
- C i/o is based on library functions. C++ i/o is made through the cin and cout operators.
- C functions do not support function or operator overloading. In operator overloading, the same function has two or more behaviors based on their parameters.
- C does not support new or delete commands. The memory operations to free or allocate memory in c are carried out by functions like malloc() and free().
- Undeclared functions are not allowed in C++. The function needs to have a prototype before the main() before first use in C++ although in C, the functions can be declared after main(). There is no need for a prototype to be defined before main.
- For an int main() in C++ we need not write a return statement but the return is mandatory in C if we are using int main().
- In C++ identifiers are not allowed to contain two or more consecutive underscores in any position. C identifiers cannot start with two or more consecutive underscores, but may contain them in between words.
- C has a top-down approch whereas C++ has a bottom up approach while parsing.
- In C, a character constant is automatically elevated to an integer whereas in C++, this is not the case.
- In C declaring global variable is allowed several times but this is not allowed in C++.
