gpt4 book ai didi

c++ - 这种多重间接是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:10 25 4
gpt4 key购买 nike

#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int i=10, j=20, k=30;
int *ip1, *ip2, **ipp;
ip1=&i;
ip2=&j;
ipp=&ip1;
*ipp=ip2;
*ipp=&k;
cout<<*ip1<<endl;
cout<<*ip2<<endl;
cout<<**ipp;
getch();
}

cout<<*ip1;打印 30 到控制台,任何人都可以解释如何?输出是 -

30
20
30

我在期待-

10
20
30

我不知道在这种情况下多重间接寻址是如何工作的。

最佳答案

The line cout<<*ip1; prints 30 to console, can anyone explain how?

因为你通过ipp(指针的指针)改变了ip1的值,从指向i,变成指向 j,最后指向k

ipp=&ip1;         // make ipp point to ip1
*ipp=ip2; // dereference on ipp, change the value of pointee (i.e. ip1) to ip2
// i.e. make ip1 point to j
*ipp=&k; // change the value of pointee (i.e. ip1) to the address of k
// i.e. make ip1 point to k
cout<<*ip1<<endl; // now we get 30 (i.e. the value of k)

关于c++ - 这种多重间接是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38585667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com