C语言离不开指针,指针作为一种派生类型,是数据关联的一种主要手段(实现顺序存储和链式存储)。数组下标运算也只是指针算术运算的语法糖。其中数组名是一个常量(为安全考量),数组下标运算替换为指针运算,由C编译器完成。
C++语言针对指针的复杂性和安全性问题,引入了引用类型,引用类型是一种特殊的指针,是一种常量类型,在不同的上下文中可以显式使用引用的地址属性或值属性。
C++也不能没有指针类型(没法实现链式存储),除非引用类型是一种非常量,但这又违背了引入引用的初衷,C++是通过原生指针、引用、智能指针、原生数组、vector等语法机制来实现相互补充的。