gpt4 book ai didi

c++ - c++ 中的函数引用

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

任何人都可以详细说明此代码中引用的行为,以及为什么它在第一行打印 12 而不是 11。

下面是代码

http://ideone.com/l9qaBp

#include <cstdio>
using namespace std;

int &fun()
{
static int x = 10;
x++;
return x;
}

int main()
{
int *ptr=&fun();
int *ptr1=&fun();
printf("%p %p \t %d %d",(void*)ptr,(void*)ptr1,*ptr,*ptr1);
return 0;
}

代码的输出是

134519132 134519132 12 12

请解释为什么 12 在第一次调用时打印而不是 11 我理解在第二次调用时应该打印 12

最佳答案

ptrptr1指向同一个变量 static int x .第二次调用更改了 static int x 的值至 12 ,然后通过取消引用打印出值 ptrptr1 , 将打印出相同的结果。

关于c++ - c++ 中的函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33161447/

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