C语言学习笔记----------伊能C语言学习笔记-------静态局部变量
2015-12-27 11:02
477 查看
/*
用static声明一个变量的作用是:
1.对局部变量用static声明,把它分配在静态存储区,该变量在整个程序执行期间不释放,其所分配的空间始终存在。常使用静态局部变量在函数调用间歇保存某些变量的值。
2.对全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)
*/
#include<stdio.h>
#include<stdlib.h>
void go()
{
for (int i = 0; i < 10; i++)
{
int num = 0; //局部变量,每次块语句结束,就自动回收,然后重新分配
//每次的值都为0
static int data = 0; //静态局部变量,,始终在内存,一旦定义初始化,即使再次执行初始化的语句,也仅仅只执行一次初始化。
// 生命周期一直沾着内存,与程序共存亡。
printf("%p,%p\n", &num, &data); //输出地址
num += i; //num=num +i;
data = data + i;
printf("\n");
}
//下面我们就来看一下,num和data的生命周期有什么特点呢?
}
void main()
{
go();
system("pause");
}
用static声明一个变量的作用是:
1.对局部变量用static声明,把它分配在静态存储区,该变量在整个程序执行期间不释放,其所分配的空间始终存在。常使用静态局部变量在函数调用间歇保存某些变量的值。
2.对全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)
*/
#include<stdio.h>
#include<stdlib.h>
void go()
{
for (int i = 0; i < 10; i++)
{
int num = 0; //局部变量,每次块语句结束,就自动回收,然后重新分配
//每次的值都为0
static int data = 0; //静态局部变量,,始终在内存,一旦定义初始化,即使再次执行初始化的语句,也仅仅只执行一次初始化。
// 生命周期一直沾着内存,与程序共存亡。
printf("%p,%p\n", &num, &data); //输出地址
num += i; //num=num +i;
data = data + i;
printf("\n");
}
//下面我们就来看一下,num和data的生命周期有什么特点呢?
}
void main()
{
go();
system("pause");
}
相关文章推荐
- C/C++学习(八)两个有序链表归并为一个有序链表
- c++标准14取消decltype推算函数返回类型
- C语言学习笔记----伊能C语言学习笔记-----全局变量
- C++之路进阶——优先队列优化最短路径算法(dijkstra)
- 一起talk C栗子吧(第八十四回:C语言实例--使用信号进行进程间通信一)
- C++模板元编程 入门简介
- C语言中常用计时方法总结
- C++.OOP
- C++模板类线性表的实现与测试
- C++ Primer Plus (Chapter 9)
- fibonacci heap.(C++)
- C++类型转换操作符(type conversion operator)
- 山东省第六届蓝桥杯 ///标题:错误票据//c/c++组
- 山东省第四届蓝桥杯 ///标题:三部排序//c/c++组
- 山东省第四届蓝桥杯 ///题目标题:前缀判断//c/c++组
- 山东省第四届蓝桥杯 ///题目标题: 第39级台阶//c/c++组
- 山东省第四届蓝桥杯 ///标题: 马虎的算式//c/c++组
- 简单c语言习题:矩阵求乘积
- 【C++ STL应用与实现】17: 如何使用迭代器辅助函数
- 山东省第四届蓝桥杯 ///题目标题: 高斯日记//c/c++组