检查自变量的生命周期和作用域
2017-03-13 23:08
141 查看
检查自变量的生命周期和作用域
输出结果分析:主函数main在调用函数total之前,起自变量x在其生命周期和作用域内。在调用函数total时,主函数main的自变量x作为实参给total的形参n初始化之后,离开作用域,函数total的自变量n和t进入其生命周期和作用域。从函数total返回主函数时,函数total的自变量n和
t结束了生命周期也就离开了作用域。主函数的自变量x回到作用域,在调用函数reverse的,main的自变量x作为实参给reverse的形参n初始化之后,离开作用域,函数reverse的自变量n和m进入生命周期和作用域,而且他们的空间恰是函数total的自变量n和t的空间,这是因为后者的空间
被撤销后,分配给了前者。从函数total返回主函数时,主函数的自变量x回到作用域,因为它的生命周期还没结束,所以他的地址和调用total之前的地址一样。
#include<stdio.h> int total(int n); int reverse(int n); int main() { int x=123; printf("main: &x=%x,x=%d\n",&x,x); //输出x的地址和值 total(x+1); printf("main: &x=%x,x=%d\n",&x,x); //输出x的地址和值 reverse(x+2); printf("main: &x=%x,x=%d\n",&x,x); //输出x的地址和值 return 0; } int total(int n) { int t=0; printf("total: &n=%x,&t=%x,n=%d\n",&n,&t,n); //输出n和t的地址,及n的值 return t; } int reverse(int n) { int m=0; printf("reverse: &n=%x,&m=%x,n=%d\n",&n,&m,n); //输出n和m的地址,及n的值 return m; }
输出结果分析:主函数main在调用函数total之前,起自变量x在其生命周期和作用域内。在调用函数total时,主函数main的自变量x作为实参给total的形参n初始化之后,离开作用域,函数total的自变量n和t进入其生命周期和作用域。从函数total返回主函数时,函数total的自变量n和
t结束了生命周期也就离开了作用域。主函数的自变量x回到作用域,在调用函数reverse的,main的自变量x作为实参给reverse的形参n初始化之后,离开作用域,函数reverse的自变量n和m进入生命周期和作用域,而且他们的空间恰是函数total的自变量n和t的空间,这是因为后者的空间
被撤销后,分配给了前者。从函数total返回主函数时,主函数的自变量x回到作用域,因为它的生命周期还没结束,所以他的地址和调用total之前的地址一样。
相关文章推荐
- onWindowFocusChanged重要作用 及Activity生命周期的详解(对解决某些窗体溢出问题很有帮助)
- WebForm页面生命周期WEBFORM_ASPNET控件树的生成和作用
- MyBatis作用域和生命周期
- Info.plist和pch文件的作用,UIApplication,iOS程序的启动过程,AppDelegate 方法解释,UIWindow,生命周期方法
- 什么是Servlet,Servlet的作用,生命周期,如何创建、配置Servlet
- vs解决无符号类型,安全开发生命周期(SDL)检查
- 作用域和生命周期
- onWindowFocusChanged重要作用和Activity的生命周期
- Servlet API中的主要接口与 类的作用和生命周期
- c语言009---作用域,生命周期,内存数据存储
- onWindowFocusChanged重要作用 and Activity生命周期
- 7.9.3: 容器中Bean的生命周期---协调作用域不同步的Bean
- 为什么需要maven及其作用及其生命周期与入门的构建方法
- Spring中Bean的生命周期和作用域
- c语言的存储类&作用域&生命周期&链接属性
- Info.plist和pch文件的作用,UIApplication,iOS程序的启动过程,AppDelegate 方法解释,UIWindow,生命周期方法
- 存储类&作用域&生命周期&链接属性
- Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序执行生命周期中,使用了单类模式的类仅仅能有一个实例对象存在。
- Spring(四)JavaBean作用范围的配置及生命周期
- C++-作用域和生命周期