what is the difference between a compiler and and interpreter?

is the interpreter used for C ?

A compiler translates code from a source language (e.g. C, C++, Java) to a target language, which can then be executed by a (virtual or physical) machine.

An interpreter reads code in an interpreted language (e.g. PHP, Perl, JavaScript) and directly executes the contained instructions.

Is the interpreter used for C ?

Not really. Well, for example the format string of printf is interpreted in run-time.