c语言里的static和auto是什么意思?

如题所述

在C语言中,static和auto是两个关键词,它们分别表示静态和自动的意思。

    static:这个关键词用于修饰变量或函数。当它修饰变量时,表示这个变量是静态的,也就是说,这个变量的生命周期被延长至程序运行期间,而不是只在函数执行期间存在。当它修饰函数时,表示这个函数是静态的,也就是说,这个函数只在本源文件内有效,不能被其他源文件调用。

    auto:这个关键词用于修饰变量。当它修饰变量时,表示这个变量是自动的,也就是说,这个变量的存储空间在函数执行期间由编译器自动分配和释放。如果没有使用auto关键词,则需要显式地声明变量的存储空间。

需要注意的是,在C语言中,变量的默认存储类型就是auto,因此一般情况下不需要使用auto关键词来修饰变量。而static关键词则可以根据需要灵活使用,以实现程序的各种功能。

♡♡ 有帮助到的话,麻烦采纳哦!♡♡

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-10-26

C语言标准里面,auto变量的初始值没有做要求,一般是随机的,它分到那块内存原来是什么,还是什么。

static变量是静态变量,如果定义时未对其赋初值,编译时系统对数值型static变量赋值为0,对字符型变量赋值空。

static的三条重要作用:

(1)最主要功能是隐藏。

(2)因为static变量存放在静态存储区,第二个作用是保持变量内容的持久。

(3)默认初始化为0。在静态数据区,内存中所有的字节默认值都是0x00。



扩展资料

全局变量的存在主要有以下一些原因:

1、使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。

2、使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。

3、对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。

4、当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。

5、还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。

6、全局变量的优先度低于局部变量。

总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使其名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。

相似回答