You are looking at part of C++'s C legacy. That said, I do not think that C++'s goal here is to protect the programmer from pointers. Rather, it is to provide abstractions to ease tasks that would otherwise need direct use of pointers, and yet allow the programmer to use such a low level construct as necessary.I don't see where c++ wants to protect the programmer from pointers. If it would do so there would be
Command line arguments can be introduced later. The version of main() that has no parameters does exist, after all.So you need to know about pointers for the simplest possible c++ program.