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使得指针自身成为变量。
其它关键字