作用域随笔
2015-07-28 21:38
211 查看
/*
变量类型:按照存储方式
1.局部变量(声明在函数内的变量)
2.全局变量(声明在函数外的变量)
变量的类型:按照生命周期(变量在内存中存在的时间)
1.静态生命期:全局变量,和静态的局部变量(在编译期间就存在,直到整个程序终止)
2.自动生命期:非静态的局部变量.
3.动态生命期:使用动态内存分配函数去申请的变量
作用域:
1.文件作用域:全局非静态变量(整个工程内部都可以使用)
全局静态变量(在本文件的声明处开始,一直到文件尾部)
2.函数作用域:局部变量(静态和非静态),作用范围:声明处开始,一直函数结尾.
3.函数的参数的作用域:作用整个函数.
4.块作用域:函数体中出现的一对{}之内的变量,作用范围仅仅在该块内.
static:
1.static修饰全局变量,改变了该全局变量的作用域,从整个工程可以被访问,变成只能本文件被访问.
2.static修饰局部变量,改变来该变量的声明周期,从自动的生命周期变成静态生命周期.
3.static修饰函数,改变函数的作用范围,只能在本文件去调用函数,其他文件不能调用.
4.static修饰局部变量,在其函数被调用时候,初始化只执行一次.
*/
#include <stdio.h>
//static int a;
void foo(int a) //a整个函数
{
int b;
{
static int c;
// c = 10;
}
c = 10;
void uplooking() //c99标准之后允许函数嵌套
{
printf("%s\n", __func__);
}
uplooking();
extern d;
printf("d = %d\n", d);
// c = 10;
}
static void func()
{
printf("hello world\n");
}
int main()
{
foo(1);
test();
test();
test();
return 0;
}
变量类型:按照存储方式
1.局部变量(声明在函数内的变量)
2.全局变量(声明在函数外的变量)
变量的类型:按照生命周期(变量在内存中存在的时间)
1.静态生命期:全局变量,和静态的局部变量(在编译期间就存在,直到整个程序终止)
2.自动生命期:非静态的局部变量.
3.动态生命期:使用动态内存分配函数去申请的变量
作用域:
1.文件作用域:全局非静态变量(整个工程内部都可以使用)
全局静态变量(在本文件的声明处开始,一直到文件尾部)
2.函数作用域:局部变量(静态和非静态),作用范围:声明处开始,一直函数结尾.
3.函数的参数的作用域:作用整个函数.
4.块作用域:函数体中出现的一对{}之内的变量,作用范围仅仅在该块内.
static:
1.static修饰全局变量,改变了该全局变量的作用域,从整个工程可以被访问,变成只能本文件被访问.
2.static修饰局部变量,改变来该变量的声明周期,从自动的生命周期变成静态生命周期.
3.static修饰函数,改变函数的作用范围,只能在本文件去调用函数,其他文件不能调用.
4.static修饰局部变量,在其函数被调用时候,初始化只执行一次.
*/
#include <stdio.h>
//static int a;
void foo(int a) //a整个函数
{
int b;
{
static int c;
// c = 10;
}
c = 10;
void uplooking() //c99标准之后允许函数嵌套
{
printf("%s\n", __func__);
}
uplooking();
extern d;
printf("d = %d\n", d);
// c = 10;
}
static void func()
{
printf("hello world\n");
}
int main()
{
foo(1);
test();
test();
test();
return 0;
}
相关文章推荐
- SEO在网页制作中的应用
- sys.argv[]基本用法
- 开源网站访问统计系统Piwik
- 淘宝分布式框架Fourinone2.0正式版发布
- hdoj2067 小兔的棋盘【dp+打表】or卡特兰数
- 黑马程序员--iOS--C基础(程序结构)
- Android Day09四大组件之内容提供者ContentProvider
- 深入探索Linux coredump调试技巧
- 看病排队
- stdlib.h
- Oracle学习笔记+作业
- 自定义Linux 终端/ssh登录前后的欢迎信息
- 全局变量,static ,extern(cp:http://blog.csdn.net/it_youhun/article/details/8526147)
- cookie_session
- 机器学习、数据挖掘、计算机视觉等领域经典书籍推荐
- Spring Framework简介
- jQuery选择器(一)
- C/C++中的static关键字
- 面试题_28——字符串的全排列
- 链式线性表实现