C++ has the following operators: +=, -=, *=, /=, <<=, >>=, &=, |=, etc. which are normally binary operations, but use one of the operands to store the result:
int x = 10;
x <<= 1;
x += 15;
x >>= 2;
Assembly languages often have instructions in which one of the operands also stores the result. A C compiler would have to deduce this as an optimization, meaning C operates at a slightly higher level.
I''m not saying that you should switch languages over a difference like this, but it does disprove the "C is closer to the hardware" myth. That''s one reason why some people refer to C++ as the world''s finest assembly language.