作用域和选择结构程序设计.ppt
《作用域和选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《作用域和选择结构程序设计.ppt(27页珍藏版)》请在三一办公上搜索。
1、解析C程序设计第2章 简单程序设计,1,#include#define PI 3.14float l(float);/*函数声明*/float s(float);/*函数声明*/float l(float r)/*函数定义:求周长*/return PI*r*2;float s(float r)/*函数定义:求面积*/return PI*r*r;void main()float r,cir,area;printf(please input r:);scanf(%f,作业及问题,习惯用符号常量,并注意语法格式,函数声明后有分号一般都写在前面,return只能返回一个值暂时还不能用一个函数求两个值。
2、,printf(circumference=%7.2fn,area=%7.2fn,l(r),s(r);/*第二种调用方式:l(r),s(r)作为printf()的参数*/,第4讲,多函数程序设计变量的作用域选择结构程序设计,解析C程序设计第2章 简单程序设计,3,#include#define PI 3.14float l(float);/*函数声明*/float s(float);/*函数声明*/float l(float r)/*函数定义:求周长*/return PI*r*2;float s(float r)/*函数定义:求面积*/return PI*r*r;void main()floa
3、t r,l,s;printf(please input r:);scanf(%f,问题,若这样起名会怎样?,会有错误提示,因为相同的名字造成了冲突。,解析C程序设计第2章 简单程序设计,4,#include#define PI 3.14float l(float);/*函数声明*/float s(float);/*函数声明*/float l(float r)/*函数定义:求周长*/return PI*r*2;float s(float r)/*函数定义:求面积*/return PI*r*r;void main()float r,cir,area;printf(please input r:);
4、scanf(%f,问题,若这样起名又会怎样?会冲突吗?,不会,它们虽然是不同的r,但因为它们的作用域不同,所以不会产生冲突。,解析C程序设计第2章 简单程序设计,5,涉及的语法-作用域,作用域:即作用范围可分为:局部变量全局变量,解析C程序设计第2章 简单程序设计,6,局部变量,局部变量在语句块内(即 内)定义的变量形式参数也是局部变量特点定义时不会自动初始化,除非程序员指定初值进入语句块时获得内存,仅能由语句块内语句访问,退出语句块时释放内存,不再有效 并列语句块各自定义的同名变量互不干扰,解析C程序设计第2章 简单程序设计,7,main()int i=1,j=2;printf(i=%d,j
5、=%dn,i,j);int i=3,a=4;printf(i=%d,a=%dn,i,a);j+;int i=5;printf(i=%dn,i);j+;printf(i=%d,j=%dn,i,j);,运行结果为:i=1,j=2i=3,a=4i=5i=1,j=4,例,运行结果?,+是一个运算符,j+表示将j变量的值加1,解析C程序设计第2章 简单程序设计,8,例3-7,运行结果?,#include void swap(int x,int y);/*函数声明*/void main()int a=3,b=5;printf(11a=%d,b=%dn,a,b);/*调用交换函数之前*/swap(a,b);
6、/*调用交换函数swap*/printf(12a=%d,b=%dn,a,b);/*调用交换函数之后*/*函数定义:交换两个变量的值的函数*/void swap(int a,int b)int temp;printf(21 a=%d,b=%dn,a,b);/*交换变量值之前*/temp=a;a=b;b=temp;/*交换器:交换变量x,y的值*/printf(22 a=%d,b=%dn,a,b);/*交换变量值之后*/,3,5,3,实参a,b的值没发生变化!单向值传递!即由实参向形参的方向传递数值!而不会朝相反的方向!,解析C程序设计第2章 简单程序设计,9,全局变量,全局变量在所有函数之外定义
7、的变量特点默认作用范围:在源程序.c中,从定义它的位置以后都有效在定义点之前或在其他.c文件中引用,应该进行如下声明:extern 类型名 变量名;从程序运行起即占据内存,程序运行过程中可随时访问,程序退出时释放内存 使函数之间的数据交换更容易,也更高效但是尽量少用,因为谁都可以改写全局变量,所以很难确定是谁改写了它破坏了函数的独立性(封装性),解析C程序设计第2章 简单程序设计,10,#include int global;/*定义全局变量*/void GlobalPlusPlus(void);main()global=1;printf(Before GlobalPlusPlus(),it
8、is%dn,global);GlobalPlusPlus();printf(After GlobalPlusPlus(),it is%dn,global);/*函数功能:对全局变量global加1,并打印加1之前与之后的值 函数入口参数:无 函数返回值:无*/void GlobalPlusPlus(void)printf(Before+,it is%dn,global);global+;printf(After+,it is%dn,global);,例,Before GlobalPlusPlus(),it is 1Before+,it is 1After+,it is 2After Globa
9、lPlusPlus(),it is 2,注意:全局变量具有“记忆性”。,解析C程序设计第2章 简单程序设计,11,#include void GlobalPlusPlus(void);main()int global=1;printf(Before GlobalPlusPlus(),it is%dn,global);GlobalPlusPlus();printf(After GlobalPlusPlus(),it is%dn,global);/*函数功能:对局部变量global加1,并打印加1之前与之后的值 函数入口参数:无 函数返回值:无*/void GlobalPlusPlus(void)
10、int global=1;printf(Before+,it is%dn,global);global+;printf(After+,it is%dn,global);,例,Before GlobalPlusPlus(),it is 1Before+,it is 1After+,it is 2After GlobalPlusPlus(),it is 1,解析C程序设计第2章 简单程序设计,12,如何用全局变量解决例3-7,#include int a=3,b=5;void swap(void);/*函数声明*/void main()printf(11 a=%d,b=%dn,a,b);/*调用交
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作用 选择 结构 程序设计

链接地址:https://www.31ppt.com/p-6241587.html