大家简单看下,官方的还要等小甲鱼老师更新啊~~~
C语言的变量拥有两种生存期
静态存储期(static storage duration)
自动存储期(automatic storage duration)
具有文件作用域的变量属于静态存储期,函数也属于静态存储期。属于静态存储期的变量在程序执行期间将一直占据存储空间,直到程序关闭才释放。 具有代码块作用域的变量一般情况下属于自动存储期。属于自动存储期的变量在代码块结束时将自动释放存储空间。
存储类型
存储类型其实是指存储变量值的内存类型,
C语言提供了5种不同的存储类型:
auto
register
static
extern
typedef
自动变量(auto)
在代码块中声明的变量默认的存储类型就是自动变量,使用关键字auto来描述。 由于这是默认的存储类型,所以不写auto是完全没问题的。
寄存器变量(register)
将一个变量声明为寄存器变量,那么该变量就有可能被存放于CPU的寄存器中。寄存器变量和自动变量在很多方面的是一样的,它们都拥有代码块作用域,自动存储期和空连接属性。不过这里有一点需要注意的是:当你将变量声明为寄存器变量,那么你就没办法通过取址运算符获得该变量的地址。
静态局部变量(static)
使用static来声明局部变量,那么就可以将局部变量指定为静态局部变量。static使得局部变量具有静态存储期,所以它的生存期与全局变量一样,直到程序结束才释放
static和extern
作用于文件作用域的static和extern,static关键字使得默认具有external链接属性的标识符变成internal链接属性,而extern关键字是用于告诉编译器这个变量或函数在别的地方已经定义过了,先去别的地方找找,不要急着报错。 怎么样才算程序结束呢?比如我定义了一个函数,在主函数初始化中调用,初始化完之后算不散程序结束呢? {:10_266:}{:10_266:}{:10_266:}又没仔细听课来这里看知识点了{:10_266:}{:10_266:}{:10_266:} 好了 玩到晚上也没复习先睡了明天复习辛苦小甲鱼老师{:10_266:}{:10_266:}{:10_266:} {:10_266:}{:10_266:}{:10_266:}起床起晚了 来复习了 {:10_266:}{:10_266:}{:10_266:}玩玩学学的我 来打卡复习这块知识了 辛苦小甲鱼老师{:10_298:} {:10_266:}{:10_266:}{:10_266:}没时间啦 作用于文件作用域的 static 和 extern,我们上一节已经讲过了,static 关键字使得默认具有 external 链接属性的标识符变成 internal 链接属性,而 extern 关键字是用于告诉编译器这个变量或函数在别的地方已经定义过了,先去别的地方找找,不要急着报错。 打卡 打卡 还是在铺垫哦,看来接下来是大货喽 话说typedef咋没说呢 YT胡子 发表于 2018-9-1 10:47
怎么样才算程序结束呢?比如我定义了一个函数,在主函数初始化中调用,初始化完之后算不散程序结束呢?
就是程序执行完了 {:10_340:} 好好学习才能天天向上! 这个怎么没人学
我要考研
. 最后一个程序在dev C++里面怎么实现呢?
页:
[1]