C is a procedural programming language developed in the 1970s that uses free-format source code, while Objective-C adds object-oriented capabilities like classes and messaging to C. Objective-C keeps all aspects of C and adds syntax and semantics for object-oriented programming, allowing problems to be divided into subclasses and modules that can be developed independently. Objective-C also enables method delegation between objects and runtime changes to classes.