C is a high level language. This means that I can express myself at a higher level of abstraction than I would need to use if I was writing each individual instruction by hand. In C if I notice another sheep walk past I can express this as:

> `sheep = sheep + 1 ;`

C knows that I have a quantity with the name sheep, which I am using to represent the number of sheep I have seen. It knows how to fetch this quantity, add one to it and then store it again. Like asking a waiter to get a cup of tea, you don't have to worry exactly how C does this - you just have to decide what kind of tea you want.

This is a high level of abstraction, I can think about what I want to do, not the nitty gritty of how the processor is actually told to do the job.