&gt; C cannot do anything that assembly language cannot do.<p>I know where you&#x27;re going with this, but I don&#x27;t agree with this statement. C provides the abstraction of structs and unions, which do not exist in assembly. Arrays are also an abstraction which does not exist in assembly - yes, assembly provides the mechanisms to easily compute addresses for arrays, but that is different than having a named entity for many objects. The direction you&#x27;re going is that C is a <i>thin abstraction</i> over assembly, which I agree with. But that is different than saying C has a one-to-one mapping, which is what I think your statement implies.