C语言变量的存储特性可分四类:
自动型(auto)、静态型(static)、外部型(extern)和寄存器型(register)。
Auto的特点:
1. [auto] 类型标识符 变量列表;常常可以缺省auto。
2. 函数内定义的局部变量、函数的形式参数和函数体内分程序的局部变量.
3. 随函数的调用而存在,随函数的返回而消失,它们在一次调用结束到下一次调用开始之间不再占有存储空间。
4. 作用域局限于所定义的函数,其生存期就是函数的生存期,在一个函数中引用另一个函数的自动型变量的值是错误的.
Static的特点:
1.局部变量在函数内定义
2.局部变量的生存期虽然为整个源程序,但是其作用域仍域自变量相同
3.允许对构造类静态局部量赋初值
4.对基本类型的静态局部变量若在说明未赋予初值,则系统自动赋予0值
Extern的特点:
1. 外部型变量和全局变量是对同一类变量的两种不同角度的提法.全局变量是从它的作用域提出,外部变量是从它的存储方式提出的,表示它的生存期。
2. 当一个源程序由若干个源文件组成时,在一个源文件中定义的外部变量在其他的源文件中也有效
Rejister的特点:
1. C语言提供的rejister说明符,能够让程序员去指定某个局部自动变量存放在寄存器里而不是内存中,以提高程序的变形速度。
2.现在计算机的运行速度越来越快,性能越来越高,优化的编译系统能够识别频繁使用的变量,自动把其放在寄存器中,而不需要程序员指定。
文件的概念
从广义上来说,文件是指信息输入和输出的对象
文件类型
- 根据文件的保存内容,分为程序文件和数据文件
- 根据文件袋存储形式,分为文本文件和二进制文件
- 根据文件是否使用缓冲区,分为标准文件和非标准文件
- 根据文件的存取方式,分为顺序存取文件和直接存取文件
文件指针
系统给每个打开的文件都在内存中开辟一个区域,用于存放文件的有关信息(如文件名,文件位置),这些信息在C语言中保存在一个结构类型变量中,该结构体类型是由系统定义的
文件的操作顺序
- 定义文件指针
- 打开文件,判断是否成功打开,若打开失败,程序退出运行状态
- 对文件进行读写操作
- 关闭文件
宏定义
C语言源程序中允许用一个标识符来表示一个较复杂的字符串,称为“宏”,被定义为“宏”的标识符称为“宏名”.在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
带参的宏与函数有什么区别
(1)宏定义与宏调用是为了减少书写量和提高运行速度;而函数定义、函数调用是为了实现模块程序设计,便于构造软件。
(2)宏调用展开后的代码是嵌入源程序中的,且每调用一次,嵌入一次代码.因此,宏调用时总的程序代码是增加的;而函数调用是执行时转入对应的函数,执行后返回主调函数,无论调用多少次,函数体的代码都不会增加.所以函数也解决代码重用问题。
指针有哪些运算
赋值运算 算术运算 关系运算 sizeof运算
指针编程的优点
- 提高程序的编译效率和执行速度
- 通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通信
- 可以实现动态的存储分配
- 便于表示各种数据结构,编写高质量的程序