#include <iostream> #include <string> using namespace std; int main() { char *a="123"; char *b="456"; char *d="789"; char **c=&a; cout<<static_cast<const void *>(a) <<endl<<static_cast<const void *>(*c)<<endl; //cout<<a<<endl<<c<<endl; *c=b; cout<<static_cast<const void *>(a) <<endl<<static_cast<const void *>(*c)<<endl; //cout<<a<<endl<<c<<endl; a=d; //cout<<a<<endl<<c<<endl; cout<<static_cast<const void *>(a) <<endl<<static_cast<const void *>(*c)<<endl; return 0; }
1 指针我们平时使用都是“顺序使用”,将某个函数或者变量的地址付给指针值。这种使用到了二级指针时同样符合指针的特点,指针值变化的同时与其关联的变量的值也发生变化,但需要记住指针变量操作的都是变量本身,分析时别被‘*’困扰住。
2 本小例也演示了指针的”逆序使用“,关联的变量变化,指针也同样发生变化。
这种特点在c++中引用时同样适用。