I doubt developers really follow this
Advice #1: Treat raw pointers and arrays as obsolete; favor smart pointers, vectors and string objects 99% of the time.
Look at any production code.
Look at any library code.
Look at any func param and return types.
C++, like C, is a low-level language. Pointers and addresses are the basic tools for a low-level language. Arrays are low-level too. However, c++ is often used as a high-level application language, just like java and c#. In that case, Advice #1 might apply.
Even in java, arrays are heavily used, often more than ArrayList.