C -- 存储类、链接和内存管理

C一、关键字:auto , extern , static , register , const , volatile , restricted

二、函数:rand( ) , srand( ) , time( ) , malloc( ) ,calloc( ) , free( )

三、在C中如何确定变量的作用域以及变量的生存期

-----------------------------------------------------------------------------------------------------------------

作用域 : 描述了程序中可以访问一个标识符的一个或多个区域。一个C变量的作用域可以是代码块作用域函数原型作用域,或者文件作用域

链接:外部链接、内部链接、空链接。

存储时期:静态存储时期、自动存储时期。


C使用作用域、链接和存储时期来定义5种存储类:自动寄存器具有代码块作用域的静态具有外部链接的静态,以及具有内部链接的静态


自动变量【auto】 --->  存储类:自动

寄存器变量【register】 ---> 存储类:寄存器 【有可能将变量存到更快的cpu寄存器中(这是由程序自动决定的),无法获得寄存器变量的地址!】

具有代码块作用域的静态变量【static】 --->  存储类:空链接的静态

具有外部链接的静态变量【extern】 --->  存储类:具有外部链接的静态

具有内部链接的静态变量【static】 --->  存储类:具有内部链接的静态

【 - - 看的头晕,再看一边以上的内容吧】


随机函数rand( ) //不知道有什么用,看了写了这多。


分配内存:malloc( ) 和 free( )


malloc( ) : 分配内存。在一个可用的内存中找到一个大小适合的块,并返回那个块内存的第一个字节的地址。[malloc( ) 并不是 100%能分配到合适的内存,写程序时可能要判断一下。]


对应每个malloc( )调用,应该调用一次free( )。free( )参数是一个指针,指向由malloc( )分配的内存块。不能使用free( )来释放通过其他方式(如 声明一个数组)分配的内存


存储类与动态内存分配


---const关键字---

const float *pf ;  float const *pf;  // pf指向一个常量浮点数。但pf本身的值是可以改变,例如,它可以指向另一个const值。

float *const pt; // pt是一个常量指针 。它必须总指向同一个地址,但所指向的值可以改变。

>>一个位于*左边任意位置的const使得数据成为常量,而一个位于*右边的const使得指针自身成为变量。


其它关键字




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值