There's too much to worry about; besides, being efficient isn't an issue when you are a beginner. Better to learn with a language that hides the low-level details so you can focus on actual programming.
In other words, I think that you should learn first how to teach the computer to do stuff and only after having done that for a while should you try to understand how the computer interprets the instructions you give it. Of course, you could take the very first steps in any language (except maybe Intercal), but once you get to strings and the like, C is more likely to make it more difficult instead of easier.
In other words, I think that you should learn first how to teach the computer to do stuff and only after having done that for a while should you try to understand how the computer interprets the instructions you give it. Of course, you could take the very first steps in any language (except maybe Intercal), but once you get to strings and the like, C is more likely to make it more difficult instead of easier.