- 1、本文档共221页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[电脑基础知识]C语言强化培训课件
局部变量和全局变量 局部变量 在函数内部声明 进入一个程序块时创建,退出该程序块时销毁 形式参数 在函数定义中被声明为参数 在函数内部像局部变量一样使用 全局变量(extern) 在所有函数以外声明 在程序的整个执行期间都拥有值 静态存储和动态存储 变量从变量值存在的时间(即生存期)角度分:静态存储方式和动态存储方式 静态:由系统分配固定的存储空间,全局变量就存储在静态存储区 动态:系统根据需要进行动态的分配存储空间 在动态存储区存放一下数据: 1、函数形式参数 2、自动变量(未加static声明) 3、函数调用时的现场保护和 返回地址 存储区域 内存中的存储区域包括下面几个部分: 程序代码区:存放函数体的二进制代码 静态区/全局区(static):全局变量和静态变量的存储区域 堆区(heap):程序员分配释放 栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值 存储类别 存储类别是数据在内存中的存储形式,是变量的属性,使用的一般语法: 存储类别 数据类型 变量名称; 例如: auto int a; static int b; //静态 register int I; //寄存器变量 extern A; //外部变量 存储类别定义了: 生命周期:保留特定值的时间长度 可见性:程序的哪些部分将能够“看见”该变量 存储类别 自动的(auto) // auto可以省略 外部的(extern) int A=10; 在另一个c文件使用extern A; //外部变量 静态的(static) 在静态存储区分配存储单元,在编译时赋初值,而且只赋初值一次。如果没有赋初值系统就会自动赋0或空字符 寄存器的(register) 1、对寄存器存取速度远高于对内存的存取 2、只有局部自动变量和形式参数可以作为寄存器变量 3、寄存器数目是有限的 静态的局部变量 static局部变量的作用域与auto变量相同 static局部变量的生存期与全局变量相同 #include stdio.h void Add(){ static int i=10; //初始化工作在编译时进行,且只进行一次 i++; printf(“i=%d\n”,i); } void main() { Add(); Add(); } 结构体的概述和声明 结构体类型声明形成了创建结构体变量的模板 声明模板时若没有定义变量是没有开辟内存空间的 结构体中的变量称为结构体元素或结构体成员 结构体声明 结构体由许多组织在一起的数据项组成,这些数据项不需要属于同一类型 结构体可以容纳需要的任意多数据项 结构体概述 struct student_t { char acName[25]; int iAge; int iNO; } //这里student_t是类型名不是变量名 //相当于创造了一个新的数据类型 定义结构体变量 一旦声明了结构体,就可以定义一个或多个该类型的变量 示例:struct cat books1; 这条语句将会预留足够内存来存放该结构体中的所有项 struct cat { char bk_name[25]; char author[20]; int edn; float price; } books1, books2; struct cat books1, books2; 或 struct cat books1; struct cat books2; 初始化结构体变量 与变量和数组一样,结构体变量也可以在声明时初始化 struct employee { int no; char name [20]; }stu={123,”abc”}; struct employee { int no; char name [20]; }stu={123}; //name值? employee 类型的变量 emp1 和 emp2 可以按照下面的方式进行声明和初始化: struct employee emp1 = {346, Abraham}; struct employee emp2 = {347, John}; 访问结构体元素 结构体元素通过使用点运算符(.)来引用,这个运算符也称为成员运算符 语法: structure_name
文档评论(0)