C betraktas som en
midnivå programmeringsspråk. Det överbryggar klyftan mellan språk på hög nivå och låg nivå.
Även om det erbjuder funktioner som datastrukturer och funktioner, vilket gör det lättare att använda än monteringsspråk (ett lågnivåspråk), möjliggör det också direkt minnesmanipulation och hårdvaruinteraktion, som är egenskaper hos lågnivåspråk. Detta ger programmerare mer kontroll över systemresurserna men gör det också mer benäget att fel om de inte hanteras noggrant.