I say, start with Python. True, it has a different syntax than the C-based languages, but it makes Python easy to learn and will not detract from the main issues. Also, Python has no arrays, no pointers, and no memory management, other than creating and modifying objects. And you don't have to declare types for variables (you can give any variable any value of any type at any time), or even declare variables - just create and use them when you need them.
After Python, learn Java. You will then learn the C-style syntax, arrays, the fact that objects' structure must always be known at compile time, and some memory management with the "new" operator (when you create an array, you have to decide how large).
After Java, learn C++. Constructors (which you will know from Python and Java), destructors (you may have some idea if you've written Java finalizers), operators new, new[], delete, and delete[], and, inherited from C, memory allocation and deallocation with malloc and free. Only then will you understand how things work under the hood.
C may be your next language. Sooner or later you will come across some C code and will need to understand it and possibly correct or extend it. But you probably won't be developing whole new projects in C. While I appreciated the beauty, power, and rationality of C, later I found the lack of object-oriented features to be stifling in most projects. Although I do like writing small Unix-style utilities in C, but mostly as a useful hobby.