博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
static和const关键字的作用
阅读量:6421 次
发布时间:2019-06-23

本文共 1108 字,大约阅读时间需要 3 分钟。

  hot3.png

static的关键字的主要作用如下:

(1)函数体内,static变量的作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值。

(2)在模块内的static全局变量可以被模块内所有函数访问,但不能被模块外其他函数访问。

(3)在模块内的static函数只可被这一块模块的其他函数调用,这个函数的使用范围被限制在声明它的模块内。

static int i=0;void fun1(){    i=0;    i++;    printf("i=%d\n",i);}void fun2(){    static int j=0;    j++;    printf("j=%d\n",j);}int main(int argc, const char * argv[]) {    // insert code here...    for (int i=0; i<5; i++) {        fun1();     // ---> i=1  i=1  i=1  i=1  i=1          fun2();     // ---> j=1  j=2  j=3  j=4  j=5    }    return 0;}/*  j被定义为局部静态变量,其值在每次函数结束时都被保留,所以结果都是上一次值加1*/

const关键字的作用如下:

(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了。

const int a=0;    a=10;   //改行显示报错/* * const修饰的是只读变量,只读变量的值在定义后就不能再改变了 */

(2)对指针来说,const可以指定指针本身-->指针常量(var * const p 指向不可变,所指内容可变)

//错误示范    int *const q=&a;//  q=&b;

 也可以指定指针所指的数据-->常量指针(var const *p 指向可变,所指内容不可变)

//错误示范      int const *p=&a;//    *p=10;

也可以既指定指针本身又指定指针所指的数据(const var *const q 指向不可变,所指内容不可变)

//错误示范      const var *const p= &a;//    *p=10;//     p=&b;

注意:在定义const变量时,必须要对变量初始化,否则编译器会报错。

转载于:https://my.oschina.net/sgcllr/blog/868686

你可能感兴趣的文章
Horizon View 7 发布Win10桌面二:即时克隆桌面池配置
查看>>
mysql性能优化注意事项以及索引
查看>>
Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
查看>>
Linux文件查找之locate与find
查看>>
JavaScript案例开发之扑克游戏
查看>>
基于左右值无限分类数据库操作
查看>>
负载均衡之基于L3/4负载
查看>>
关于CookieUtile的相关代码
查看>>
运维日记-Exchange服务器重新加域后处理-20140712
查看>>
Mac OS X 苹果电脑如何查什么程序在偷跑流量
查看>>
直播答题APP突然爆红 直播APP平台迎来社交裂变新契机!
查看>>
单点登录 - CAS退出登录后跳转到指定页面
查看>>
vnc安装和使用
查看>>
Titan图数据介绍
查看>>
阿里云自定义监控配置实例
查看>>
display:inline-block的用法
查看>>
5分钟了解 Python 中的super函数是如何实现继承的
查看>>
NginX+keepalived实现高可用
查看>>
linux下oracle数据库服务和监听的启动停止
查看>>
Centos5x 安装 VMware Tools
查看>>