// 一次c/c++ 指针的学习过程
int main() {
int num,pi;
num=1;
num++;
int *p;
int **ptr;
pi=num;
p=#
*ptr=#
std::cout << "Hello, World!" << std::endl;
std::cout << "num=" << num << std::endl;
std::cout << "num地址:" << &num << std::endl;
std::cout << "p指针:" << p << std::endl;
std::cout << "&p引用:" << &p << std::endl;
std::cout << "&*p指针所指引用:" << &*p << std::endl;
std::cout << "*p指针所指:" << *p << std::endl;
std::cout << "**ptr=" << **ptr << std::endl;
std::cout << "*ptr=" << *ptr << std::endl;
std::cout << "ptr=" << ptr << std::endl;
std::cout << "&ptr=" << &ptr << std::endl;
std::cout << "&*ptr=" << &*ptr << std::endl;
std::cout << "&**ptr=" << &**ptr << std::endl;
// notes:
// *p :指的是指向的内容,打印*p返回一个值;
// p : 指的是指针p本身,返回一个 地址 ,即是指向内容的地址;
// &a : 指的是a的地址,也就是p指针指向的地址;
// &p : 指的是指针的地址;
// &*p : 指的是指针指向内容的地址;
// 即 &num = p = &*p; *p = num ;
// **ptr =2 ;可以把*ptr当成上面的p一个指针,指向的是*ptr指向的内容区,即是num的内容区,返回的是内容,2;
// *ptr 类似p指针,指的是*ptr指针指向内容的地址,即是num的地址;
// ptr 返回 *ptr指针本身的的地址
// &ptr 返回ptr指针本身的地址
//&*ptr 返回*ptr本身的地址
//&**ptr 返回*ptr指向内容的地址
return 0;
}
打印结果:
Hello, World!
num=2
num地址:0x7ff7be1fd208
p指针:0x7ff7be1fd208
&p引用:0x7ff7be1fd1f8
&*p指针所指引用:0x7ff7be1fd208
*p指针所指:2
**ptr=2
*ptr=0x7ff7be1fd208
ptr=0x7ff7be1fd210
&ptr=0x7ff7be1fd1f0
&*ptr=0x7ff7be1fd210
&**ptr=0x7ff7be1fd208
进程已结束,退出代码0