宁波大学:《C语言程序设计》第十二章 C语言中用户标识符的作用域和存储类(石守东)

第十二章C语言中用户标识符的作用域 和存储类 12.1局部变量、全局变量和存储分类 用户命名的标识符都有一个有效的作用域 作用域:指标识符在程序某一部分中有定义 能被C编译和连接程序所识别 根据变量出现在程序中的不同位置,分为局 部变量(内部变量)和全局变量(外部变量)
第十二章 C语言中用户标识符的作用域 和存储类 12.1 局部变量、全局变量和存储分类 •用户命名的标识符都有一个有效的作用域 •作用域:指标识符在程序某一部分中有定义, 能被C编译和连接程序所识别。 •根据变量出现在程序中的不同位置,分为局 部变量(内部变量)和全局变量(外部变量)

12.1局部变量、全局变量和存储分类 局部变量:在函数内部或复合语句内部定 义的变量。函数的形参也是局部变量(可 一以说明为自动类和静态类) 外部变量:在函数外部定义的变量(只能 说明为静态类) 四个有关的说明符:auto、 register、 static、 extern auto int 1,j;或者 int auto 1,ji;
12.1局部变量、全局变量和存储分类 局部变量:在函数内部或复合语句内部定 义的变量。函数的形参也是局部变量(可 以说明为自动类和静态类) 外部变量:在函数外部定义的变量(只能 说明为静态类) 四个有关的说明符:auto、register、static、 extern auto int i,j;或者 int auto i,j;

动态存储区(堆栈) 静态存储区 程序代码区 122局部变量及其作用域和生存期 1221auto变量
动态存储区(堆栈) 静态存储区 程序代码区 12.2局部变量及其作用域和生存期 12.2.1 auto变量

auto变量:在函数内部或复合语句中定义时 若没有指定存储类或使用了auto说明符 float a;等价于 auto float a; 自动变量:它的作用域从定义的位置起到函 数体结束止。如书p170的一段程序。 注意:无初值的自动变量其值不定 不同函数中使用了同名变量不会互相影响
注意:无初值的自动变量其值不定 不同函数中使用了同名变量不会互相影响 auto变量:在函数内部或复合语句中定义时 若没有指定存储类或使用了auto说明符 float a;等价于 auto float a; 自动变量:它的作用域从定义的位置起到函 数体结束止。如书p170的一段程序

1222 register变量 寄存器变量也是自动变量 区别:变量的值保留在CPU的寄存器中,不占内存单元 优点:有助于提高程序的运行速度。 例121计算Xn maino f int S; s=power(5, 3) printf(“%dn”),S) power(int x, register int n) register int p for(p=1; n; n--)p=p*X return p
12.2.2 register变量 寄存器变量也是自动变量 区别:变量的值保留在CPU的寄存器中,不占内存单元。 优点:有助于提高程序的运行速度。 例12.1 计算Xn main() { int s; s=power(5,3); printf(“%d\n”),s); } power(int x,register int n) { register int p; for(p=1; n; n--) p=p*x; return p; }

说明: 只能说明少量的寄存器变量 2寄存器变量无地址,也不能对它求地址 运算 3.定义应靠近使用的地方,用完尽快释放, 可通过放在复合语句中实现
说明: 1. 只能说明少量的寄存器变量 2.寄存器变量无地址,也不能对它求地址 运算 3.定义应靠近使用的地方,用完尽快释放, 可通过放在复合语句中实现

1223静态存储类的局部变量 静态局部变量:在函数体或复合语句内部,用 I static来说明 个变量 作用域:与自动变量和寄存器变量一样 区别:1它在内存的静态存储区中占据永久的存储单元即 使退出此函数,也不释放该存储单元 生存期:从程序运行开始到程序运行结束 2静态变量初值为0
12.2.3 静态存储类的局部变量 静态局部变量:在函数体或复合语句内部,用static来说明 一个变量。 作用域:与自动变量和寄存器变量一样 区别:1.它在内存的静态存储区中占据永久的存储单元,即 使退出此函数,也不释放该存储单元 生存期:从程序运行开始到程序运行结束。 2.静态变量初值为0

123全局变量及其作用域和生存期 1231全局变量的作用域和生存期 全局变量:只有静态一种类型,可使用 extern和 static两种说明符 全局变量:定义在函数外部任意位置上的变量 作用域:从变量定义的位置起到整个源文件结 束止。例如:
12.3.1 全局变量的作用域和生存期 12.3 全局变量及其作用域和生存期 全局变量:只有静态一种类型,可使用 extern和static 两种说明符 全局变量:定义在函数外部任意位置上的变量 作用域:从变量定义的位置起到整个源文件结 束止。例如:

void fun1(void) void fun2(void); int sum,/*定义全局变量* maino sum++ void funI(void) sum++ int test void fun 2(void …Sum;test=1;}
void fun1(void); ` void fun2(void); int sum; /*定义全局变量*/ main() { … sum++;…..} void fun1(void) { … sum++;…..} int test; void fun2(void) {… sum++;test=1;…..}

123.1全局变量及其作用域和生存期 说明: ·生存期是整个程序的运行期 如全局变量与某一函数的局部变量同 名,则在该函数中,此全局变量失去作 用,局部变量与全局变量无任何关系。 见书P173的程序 不提倡使用全局变量
12.3.1 全局变量及其作用域和生存期 说明: • 生存期是整个程序的运行期 •如全局变量与某一函数的局部变量同 名,则在该函数中,此全局变量 失去作 用,局部变量与全局变量无任何关系。 见书P173的程序 不提倡使用全局变量
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 宁波大学:《C语言程序设计》第十一章 对函数的进一步讨论(石守东).ppt
- 宁波大学:《C语言程序设计》第10章 字符串(石守东).ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第8章 频域测量技术.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第7章 波形显示与测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第6章 频率与时间测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第5章 测量用信号发生器.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第4章 电子元器件与集成电路测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第3章 电流、电压与功率测量.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第2章 基本测量理论与测量数据处理.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第1章 电子测量概论(田华).ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第11章 电子测量技术的综合运用.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)第10章 智能仪器与自动测量技术.ppt
- 高职高专系列规划教材:《电子测量技术》课程教学资源(PPT课件)目录(田华).ppt
- 复旦大学信息学院:《数字逻辑电路基础》PPT教学课件(共五章).ppt
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第六章 电力电子技术应用中的一些问题.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第五章 交-直-交变换器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第四章 直流-直流变换器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第三章 交-交变换器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第二章 可控整流器与有源逆变器.pdf
- 武汉理工大学:《电力电子技术》课程教学课件(课件讲稿)第一章 电力电子器件.pdf
- 宁波大学:《C语言程序设计》第十三章 编译预处理和动态存储分配(石守东).ppt
- 宁波大学:《C语言程序设计》第十四章 结构体、共用体和用户定义类型(石守东).ppt
- 宁波大学:《C语言程序设计》第十五章 位运算(石守东).ppt
- 宁波大学:《C语言程序设计》第十六章 文件(石守东).ppt
- 宁波大学:《C语言程序设计》第一章 程序设计基本概念(石守东).ppt
- 宁波大学:《C语言程序设计》第二章 C程序设计的初步知识(石守东).ppt
- 宁波大学:《C语言程序设计》第三章 顺序结构(石守东).ppt
- 宁波大学:《C语言程序设计》第四章 选择结构(石守东).ppt
- 宁波大学:《C语言程序设计》第五章 循环结构(石守东).ppt
- 宁波大学:《C语言程序设计》第六章 字符型数据(石守东).ppt
- 宁波大学:《C语言程序设计》第七章 函数(石守东).ppt
- 宁波大学:《C语言程序设计》第八章 指针(石守东).ppt
- 宁波大学:《C语言程序设计》第九章 数组(石守东).ppt
- 机械工业出版社:《实用电子电气工程图算手册》PDF电子书(共十二章)(刘启光).pdf
- 《电子电路相关实验》实验五 集电极调幅与大信号检波.ppt
- 《电子电路相关实验》实验一 高频小信号调谐放大器.ppt
- 《电子电路相关实验》实验八 模拟锁相环.ppt
- 《电子电路相关实验》实验二 二极管开关混频器实验.ppt
- 《电子电路相关实验》实验六 变容二极管调频.ppt
- 《电子电路相关实验》实验七 集成电路模拟乘法器的应用.ppt