C is more than enough to getting work done, but you need to look beyond to expand your mind and play with higher-levels of computing than pointer manipulation and bit flipping.
I haven't thought about pointer manipulation or bit flipping for years. Once you know a language you stop thinking about the grammar.
It's not the grammar that's in your face, ime, it's the minimal semantics. In C I'm more conscious of low-level details that I don't need to think about: planning where to put things, stack, heap, static area or even, gasp, registers is not a good way to implement higher level data structures and algorithms.
I prefer to focus on lists, graphs, queues, objects, events, continuations/control-semantics, and communication messages. I prefer to code in a high-level languages that allows me to get lower and lower as my needs for performance arise, and C is not it; in C I would need to build up my language to the higher semantic level my applications usually require, before I can even see it work. It puts the performance cart before the usefulness horse.
Why do you need to move on to anything else? As your friend said... "C is more than enough".