检查自变量的生命周期和作用域
来源:互联网 发布:c语言if并列多个条件 编辑:程序博客网 时间:2024/04/19 13:50
检查自变量的生命周期和作用域
#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之前的地址一样。
t结束了生命周期也就离开了作用域。主函数的自变量x回到作用域,在调用函数reverse的,main的自变量x作为实参给reverse的形参n初始化之后,离开作用域,函数reverse的自变量n和m进入生命周期和作用域,而且他们的空间恰是函数total的自变量n和t的空间,这是因为后者的空间
被撤销后,分配给了前者。从函数total返回主函数时,主函数的自变量x回到作用域,因为它的生命周期还没结束,所以他的地址和调用total之前的地址一样。
0 0
- 检查自变量的生命周期和作用域
- 作用域和生命周期
- 作用域和生命周期
- spring bean的作用域和生命周期
- Spring Bean的生命周期和作用域
- AsyncTask生命周期和生命周期各部分的作用
- Activity的生命周期和作用
- MyBatis作用域和生命周期
- C++-作用域和生命周期
- web开发中四个域的生命周期和作用域
- MyBatis进阶(一)类的作用域和生命周期
- python和php的作用域及生命周期
- C++中变量,函数的作用域和生命周期?
- C语言 变量的作用域和生命周期
- C语言中变量的作用域和生命周期
- spring 中bean的作用域和生命周期
- 变量的作用域、生命周期、初始化和访问方法
- C++中变量的作用域和生命周期
- UITableView的性能优化
- 【第8题】360校园招聘2015届技术类笔试题
- 算法训练 王、后传说
- 【第9题】360校园招聘2015届技术类笔试题
- 如何使用纯java config来配置spring mvc
- 检查自变量的生命周期和作用域
- 规律题-3
- 【第10题】360校园招聘2015届技术类笔试题
- 测试用例的思路分析
- Unity中的爆炸力
- 【第11题】360校园招聘2015届技术类笔试题
- android蓝牙4.0的知识要点
- 【第12题】360校园招聘2015届技术类笔试题
- Lambda&Java多核编程-5-函数式接口与function包