#include<iostream>
using namespace std;
int &fun()
{
static int x = 10;
return x;
}
int main()
{
fun() = 30;
cout << fun();
return 0;
}
当上述程序运行时,输出为30。返回整数变量x作为对main()函数的引用,并为其分配了值30。但是x的范围不限于fun( )函数?;如果是,为什么我们可以在主函数中更改它的值?
范围是有限的,这意味着禁止尝试x
直接在范围之外进行访问。
在范围内,可以使用非限定名称查找将名称与其声明相关联。
但是,如果变量仍处于活动状态,则始终可以返回指向该变量的指针或引用,并且可以通过指向同一变量的引用或指针对其进行更改。该引用的名称可以是匿名的(临时的),也可以绑定到某些命名的引用。
关于生存期,它在包含静态变量的函数被首次调用时开始,并在程序结束时结束。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句