Item08. Pointers to Pointers
指向指针的指针(多级指针)与指针有相同的地方也有不同的地方
--------------------------------------------
1、改变指针的地址指向
void scanTo( const char **p, char c ) {
while( **p && **p != c )
++*p;
}
char s[] = "Hello, World!";
const char *cp = s;
scanTo( &cp, ',' );//指向","
2,优先使用指针的引用
void scanTo( const char *&p, char c ) {
while( *p && *p != c )
++p;
}
3,指针与多级指针的差别
1)指针能用于多态,而多级指针不可以
Circle *c = new Circle;
Shape *s = c; // 正确...
Circle **cc = &c;
Shape **ss = cc; // 错误!
2)加上const搅合后,非指针常量可以赋值给指针常量,但不可以赋值给多级指针
char *s1 = 0;
const char *s2 = s1; // 正确...
char *a[MAX]; // aka char **
const char **ps = a; // 错误!