2010.2--Cisco 3750交换机的堆叠
2010-02-23 13:50
375 查看
当返回盏变量
不能成为其它引用的初始值。(可以作为变量的初始值,但这样也就没有必
要返回局部变量了,返回这个局部变量的值就可以了。)
不能作为左值使用。
当返回静态变量或全局变量
可以成为其他引用的初始值
可以作为右值使用,也可以作为左值使用
int& f()
{
static int a=0;
return 0;
}
int &g()
{
int a=0;
return a;
}
int main()
{
int a=g();
int& b=g();
f()=10;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("f()=%d\n",f());
printf("press enter to ...");
getchar();
return 0;
}
引用b是g函数中的局部变量a的别名,代表了局部变量a的内存空间。g函数调
用结束之后,这个空间被释放,引用b是已经被释放了的内存空间的别名。所以打印
出的b的结果是无法预知的。
这种情况,相当于返回了局部变量的地址,当然会有问题。
函数f()返回的是一个静态局部变量的引用,因此,它可以作为左值来使用。
本文出自 “Linux运维” 博客,请务必保留此出处http://2853725.blog.51cto.com/2843725/1391172
不能成为其它引用的初始值。(可以作为变量的初始值,但这样也就没有必
要返回局部变量了,返回这个局部变量的值就可以了。)
不能作为左值使用。
当返回静态变量或全局变量
可以成为其他引用的初始值
可以作为右值使用,也可以作为左值使用
int& f()
{
static int a=0;
return 0;
}
int &g()
{
int a=0;
return a;
}
int main()
{
int a=g();
int& b=g();
f()=10;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("f()=%d\n",f());
printf("press enter to ...");
getchar();
return 0;
}
引用b是g函数中的局部变量a的别名,代表了局部变量a的内存空间。g函数调
用结束之后,这个空间被释放,引用b是已经被释放了的内存空间的别名。所以打印
出的b的结果是无法预知的。
这种情况,相当于返回了局部变量的地址,当然会有问题。
函数f()返回的是一个静态局部变量的引用,因此,它可以作为左值来使用。
本文出自 “Linux运维” 博客,请务必保留此出处http://2853725.blog.51cto.com/2843725/1391172
相关文章推荐
- 关于Cisco 3750交换机的堆叠介绍
- Cisco 3750 交换机 堆叠配置要点
- CISCO 3750交换机堆叠
- Cisco 3750 交换机 堆叠配置要点
- 关于Cisco 3750交换机的堆叠介绍
- Cisco 3750交换机配置无故丢失,恢复一例
- Cisco 3750/Cisco 4506 交换机vlan划分
- 思科3750交换机堆叠技术配置向导
- cisco 2950 3550 3750 系列交换机密码破解
- Cisco 交换机的堆叠与级连的区别
- Cisco 3750交换机配置DHCP服务器实例
- Cisco 3750交换机配置DHCP服务器实例网络
- 思科3750交换机堆叠技术配置向导
- Cisco 3750堆叠及恢复单台。
- Cisco 3750 堆叠技术
- Cisco 2960 3750交换机端口流量限速(QOS) 推荐
- CISCO 3750交换机配置导出导入及IOS升级