C++ 通过双指针分配指针 int m=5,n=6; int*p,*q,**r; p=&n,q=&n; r=&p; 库特

C++ 通过双指针分配指针 int m=5,n=6; int*p,*q,**r; p=&n,q=&n; r=&p; 库特,c++,pointers,double-pointer,C++,Pointers,Double Pointer,当你给出*r=&m,p得到m的地址,*p应该打印m(5)的值时,输出不应该是56565吗 是的,它应该;你的推理恰到好处。此外,指针应该是这样的。这就是指针的工作方式 如果r=&p并且您设置了*r=&m,那么它与p=&mC和C不是同一种语言完全相同。请尽量只使用与您的问题相关的标签。说到相关标签。。。我想你是想用C++来标记。是的,我的坏。我的意思是添加C++。你真的编译并运行了你发布的代码吗?例如,注释是用/,而不是\\。此外,您可以在一行上打印所有内容。这样就不会产生两条不同的线。最后,当我

当你给出*r=&m,p得到m的地址,*p应该打印m(5)的值时,输出不应该是56565吗


是的,它应该;你的推理恰到好处。此外,指针应该是这样的。

这就是指针的工作方式


如果
r=&p
并且您设置了
*r=&m
,那么它与
p=&m

C和C不是同一种语言完全相同。请尽量只使用与您的问题相关的标签。说到相关标签。。。我想你是想用C++来标记。是的,我的坏。我的意思是添加C++。你真的编译并运行了你发布的代码吗?例如,注释是用
/
,而不是
\\
。此外,您可以在一行上打印所有内容。这样就不会产生两条不同的线。最后,当我纠正这些错误时。我得到了预期的结果。我得到了预期的56565你是怎么得到56665的?什么编译器/平台?
int m = 5, n = 6;
int *p,*q,**r;
p = &n, q = &n;
r = &p;
cout<<m<<n<<*p<<*q<<**r; \\Gives output 56666
*r = &m;
cout<<m<<n<<*p<<*q<<**r;  \\Gives output 56665