笔试面试高频题:static 和 const的作用是什么?

一、static的作用:

1.当修饰全局变量时  :  改变链接属性,让其他文件不可调用,使全局变量的作用域变小了。

例如

在main函数外,定义一个全局变量a,   变量a的使用权,仅限定在该文件下可用,外部文件不可调用。如果 ,全局变量未用static修饰,那么其他文件可通过 extern关键字调用。

2.修饰局部变量时:  改变变量生命周期

普通的局部变量,在程序执行进入作用域时被创建,存放在栈区,当出了作用域立即会被销毁。而用static修饰后的局部变量是存放在”静态区”的,直到程序结束时才会被销毁。

例如  定义一个函数 

int   test(void)

{

int   i=2;

int   j=3;

int   sum;

sum  =  i+j;

return  sum;

}

当主函数调用test这个函数时,进入这个函数,在栈区,创建了  i 和 j 还有sum这三个变量,当执行完毕这个函数,i ,j  ,sum这三个变量都会被系统从栈区中销毁,假如用static修饰了变量i,变量i就会被创建在静态区而不是栈区,它直到程序结束才会被销毁。

注意!!!static修饰局部变量只改变生命周期,不会改变作用域。

3.修饰函数:   static对函数的修饰和修饰全局变量的功能很相似,修饰函数时也是会改变函数的链接属性,从而使得函数的作用域变小,仅限定在源文件中使用,其他文件不可调用该函数。

二、const 的作用

1. 修饰变量 :   如果一个变量被const修饰,那么这个变量就只能被访问,而不能修改。

例如 

定义一个全局变量   

int  a =20 ; 

此时未被const修饰,那么我们仍然可以在主函数中,将变量a赋其他值,如a=30  ,这是允许的。

如果定义的变量  被const修饰:

const  int a =20;

此时我们只能访问,而不能重新给变量a赋值

如  a=30;此时是不被允许的。

2.修饰指针

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值