新问题1:例如定义一个变量 double a1=114.514、指针变量double *p1=&a1,若要定义一个指向指针变量的变量,是否一定且只能使用 double **p2=&p1 ?为什么不能使用 double *p2=&p1 ?
思考1:这可能是一个定义问题,可能针对指向指针的指针(二级指针?)进行了专门的定义,*p类型的指针可能只能指向非指针类型的变量;
类似的,对指针的引用也与对内置类型的引用的格式有所不同,例如定义一个变量 float a2=19.19、指针float *p3=&a2,对指针p3的引用应为 float *&referp3=p3,其中等号左侧“*”用于声明所引用的对象是一个指针变量。
另外,通过多级指针指向一个变量的方法:例如定义一个变量Int a3=114、指针int *p4=&a3、int *p5=p4使p4存储的地址赋值给p5,实现所存地址的传递。注意int *p5=*p4是非法且错误的表达,因为等号右侧的“ * ”号是解引用符,它使指针变量间接地访问所指地址存储的数据,使要赋的值变为非法且错误的内置类型,左侧的才是对指针变量的声明。