腾讯实习生笔试题20160305
来源:互联网 发布:淘宝怎么关闭店铺 编辑:程序博客网 时间:2024/06/04 18:56
c语言中static关键字的意义有哪几个?
- 修饰局部变量:
一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意的是,虽然用static对局部变量进行修饰过后,其生命周期以及存储空间发生了变化,但是其作用域并没有改变,其仍然是一个局部变量,作用域仅限于该语句块。在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
#include<stdio.h>#include<iostream>void fun(){ static int a =1; a++; printf("%d\n", a); return;}int main(){ fun(); fun(); return 0;}
程序执行结果为: 2 3
说明在第二次调用fun()函数时,a的值为2,并且没有进行初始化赋值,直接进行自增运算,所以得到的结果为3.
对于静态局部变量如果没有进行初始化的话,对于整形变量系统会自动对其赋值为0,对于字符数组,会自动赋值为’\0’.
- 修饰全局变量:
//有file1.cppint a = 1;//static int a = 1;
//file2.cpp#include<stdio.h>#include<iostream>extern int a;int main(){ printf("%d\n", a); return 0;}
则执行结果为 1
但是如果在file1.c中把int a=1改为static int a=1;
那么在file2.c是无法访问到变量a的。原因在于用static对全局变量进行修饰改变了其作用域的范围,由原来的整个工程可见变为本源文件可见。
- 修饰全局变量:
用static修饰函数的话,情况与修饰全局变量大同小异,就是改变了函数的作用域。表明此函数为静态函数,只能被本文件中其他函数所调用。
一个返回int*型的函数,有一个整数类型的参数。 请申明这个函数的指针变量。
int *
0 0
- 腾讯实习生笔试题20160305
- 腾讯实习生笔试题
- 腾讯实习生笔试题
- 腾讯实习生笔试题
- 腾讯实习生笔试题
- 腾讯2012实习生笔试题
- 2012腾讯实习生笔试题
- 腾讯2012实习生笔试题
- 腾讯2012实习生笔试题
- 腾讯2012实习生笔试题
- 腾讯 2012 实习生笔试题
- 腾讯2014实习生笔试题
- 2014 腾讯实习生笔试题
- 腾讯2014实习生笔试题
- 2012年腾讯招聘实习生笔试题
- 2012年腾讯招聘实习生笔试题
- 腾讯2012实习生西安地区笔试题
- 腾讯2012实习生笔试题+答案解析
- 青蛙跳台阶
- C++拷贝构造函数
- SpringIOC 实例化Bean的流程
- eclipse反编译jar
- 第13讲——程序阅读题
- 腾讯实习生笔试题20160305
- Android悬浮缩放菜单的实现
- ubuntu下载编译android5.0
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
- Java遍历二维数组,求和
- Android学习笔记----数据持久存储
- Spring MVC测试
- ViewPager页面指示器简单实现
- 国家自然科学基金的“关键科学问题”(转)