您的位置:首页 > 其它

Item08. 多级指针(Pointers to Pointers)

2005-04-10 19:49 330 查看
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; // 错误!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: