《C语言程序设计 》教案 第二章 基本数据类型和表达式.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《C语言程序设计 》教案 第二章 基本数据类型和表达式.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计 》教案 第二章 基本数据类型和表达式.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计课程教案表授课题目第二章 基本数据类型和表达式(3)课时安排2授课时间教学目的和要求1掌握:指针运算2了解:位运算符及逗号运算符教学内容1基本内容:(1)指针运算(2)其他运算符及表达式2重点:指针变量的定义与应用、指针运算3难点:指针运算讲课进程和时间分配、地址与指针的概念 (15分钟)(1)变量的指针与变量的值1)地址:在计算机中,把内存区划分为一个一个的存储单元,每个单元为一个字节(位),它们都有一个编号,这个编号就是内存地址板书上面这个图,以便使学生更好地理解内存地址。如有定义:char c=A; int a=3; 则所占内存情况如下: 注意:c和a的地址可能相邻,也可能
2、不相邻,是由系统分配的,我们不用关心。【例2.11】输出变量的值和变量的指针(地址)。main()201202203主任办公室书记办公室秘书办公室 int a=10,b=20; char c=X,d=Y; float e=5.6,f=-2.8; printf(“%d,%dn”,a,b); printf(“%c,%cn”,c,d); printf(“%f,%fn”,e,f); printf(“%p,%p,%p,%p,%p,%pn”,a,b,c,d,e,f); 输出结果:12,20通过上述例题,使学生区分变量的值和变量地址(指针)两个专业术语。(2)变量的指针和指针变量C语言中一个变量所分配的内存
3、空间首字节地址,称为该变量的指针(地址)。一个指针变量的值是存放另一个变量的地址。例如: int a=10,*p; p=&a; 将变量a的地址赋给指针变量p,如图2-9所示。 2、指针变量的定义与引用 (20分钟)(1)指针变量的定义指针变量的定义格式:数据类型 *; 说明:“*”表示该变量为一个指针变量。为指针变量名,取名规则与一般变量取名规则相同。例 :int *p1; /*定义p1为指向整型变量的指针变量*/ char *c1; /*定义c1为指向字符型变量的指针变量*/ float *f1; /*定义f1为指向实型变量的指针变量*/以上定义的3个指针变量,其中,p1可以存放整型变量的地
4、址;c1存放字符型变量的地址;f1存放实型变量的地址。(2)与指针有关的两个运算1) & 取地址运算符作用:取变量内存单元的地址。取变量地址的运算符“&”在前面输入语句时已经使用过。如:scanf(“%d”,&a);/*向变量a的地址中输入数据 */ 一个指针变量只能指向其定义中所说明的数据类型。例:int a,*p1; char c,*c1; p1=&a; /*把变量a的地址赋给指针变量 p1 */ c1=&c; /*把变量c的地址赋给指针变量 c1 */以上定义的p1、c1两个指针变量,p1的值是变量a的指针;c1的值是变量c的指针。2) * 取内容运算符 作用:取指针变量所指变量的值,又
5、称间接访问运算符考虑:存储单元的地址与变量间有什么样的关系?看下面例子:用现实生活中的例子使学生更好地理解上述问题,并找到两者之间联系。主任办公室 书记办公室 教学秘书办公室201 202 203此处房间相当于存储单元、房间号相当于地址、“主任办公室”等相当于变量名。因此,对存储单元的访问,既可以通过变量名来实现,也可以通过地址来访问。结论:对一个变量的访问(访问是指存、取其值或赋值等操作)有两种方式:直接访问间接访问直接访问:即直接通过变量名所对应的地址访问数据。例:main() int a=5; printf(“a=%dn”,a); 运行结果:a=5 通过变量名a与地址的对应关系,找到a的
6、地址,然后从地址中取出数据5输出间接访问:即通过一个指针变量来访问数据。间接访问即先把某一变量的地址保存在一个指针变量中,若对该变量的数据进行操作,先要找到保存该变量地址的指针变量,然后从指针变量中取出保存的地址,再从地址中取出数据进行运算。例:main() int a=10,*p; p=&a; /* 将变量a的地址赋给指针变量p */ printf(“a=%dn”,*p);/* *p是取出p所指向的变量a的地址65500中的值*/ 运行结果:a=10 (3)指针变量的定义与引用指针变量的初始化的一般格式如下:数据类型 *=&变量名;例:int a,*p=&a; 指针变量初始化的过程是:系统按
7、照所定义的类型,在内存中为变量a与指针变量p分配存储空间。同时,将变量a的地址送给指针变量p中。在上面的定义中,p指向a。 定义指针变量的目的是,为了通过指针变量去引用(访问)内存单元。当一个指针变量得到一个变量的地址后,就可以用指针对变量进行操作。【例2.12】用两种方式输出变量的值。 main() int a=10,b=20; int *p1=&a;/*指针变量的初始化*/ int *p2=&b; printf(“a=%d,b=%dn”,a,b); printf(“*p1=%d,*p2=%dn”*p1,*p2); 运行: a=10,b=20*p1=10,*p2=20分析结果:第一个打印语句
8、printf(“a=%d,b=%dn”,a,b);是用直接方式输出。第二个printf(“*p1=%d,*p2=%dn”*p1,*p2);是用间接访问方式输出,其执行过程是: a的地址赋给指针变量p1,b的地址赋给指针变量p2。p1指向a,p2指向b(如图2-11所示)。*p1和*p2是分别从其内存单元中取出的值65500和65502。然后,从地址65500、65502中分别取出值10、20输出。以上表明:当p1=&a;则p1的值是a的地址;*p1是a的值,即*p1与a等价。对某一个变量进行运算,可以用两种方法来进行:用变量名;用指针运算符“*”,取指针变量所指变量的值。【例2.13】分析程序
9、运行结果。 main() int a=10,b=8,c,d,*p1,*p2; p1=&a;p2=&b; c=*p1+*p2; d=*p1-*p2; Printf(“a+b=%dn”,c); Printf(“a-b=%dn”,d); 运行结果:a+b=18 a-b=2说明:p1的值是a的地址,*p1是取p1所指变量的值,即a的值,所以*p1与a等价。同理,*p2与b等价。所以有:c=*p1+*p2与c=a+b等价;c=*p1-*p2与c=a-b等价。 3、指针运算 (20分钟)指针运算就是地址运算。(1)指针的算术运算1)指针加、减整数的运算 设:p为指针变量,n为正整数。则表达式p+n,为p的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 C语言程序设计 教案 第二章 基本数据类型和表达式 语言程序设计 教案 第二 基本 数据类型 表达式
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内