- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
04《C语言程序设计》教案第2章基本数据类型和表达式
《C语言程序设计》课程教案表
授课题目
第二章 基本数据类型和表达式(3) 课时安排 2 授课时间 教学目的和要求
1.掌握:指针运算
2.了解:位运算符及逗号运算符 教学内容
1.基本内容:(1)指针运算(2)其他运算符及表达式
2.重点:指针变量的定义与应用、指针运算
3.难点:指针运算 讲课进程和时间分配
1、地址与指针的概念 (15分钟)
(1)变量的指针与变量的值
1)地址:在计算机中,把内存区划分为一个一个的存储单元,每个单元为一个字节(8位),它们都有一个编号,这个编号就是内存地址
板书上面这个图,以便使学生更好地理解内存地址。
如有定义:char c=‘A’; int a=3; 则所占内存情况如下:
注意:c和a的地址可能相邻,也可能不相邻,是由系统分配的,我们不用关心。
【例2.11】输出变量的值和变量的指针(地址)。main()
{
int a=10,b=20;
char c=’X’,d=’Y’;
float e=5.6,f=-2.8;
printf(“%d,%d\n”,a,b);
printf(“%c,%c\n”,c,d);
printf(“%f,%f\n”,e,f);
printf(“%p,%p,%p,%p,%p,%p\n”,a,b,c,d,e,f);
}
输出结果:
12,20
通过上述例题,使学生区分变量的值和变量地址(指针)两个专业术语。
(2)变量的指针和指针变量
C语言中一个变量所分配的内存空间首字节地址,称为该变量的指针(地址)。一个指针变量的值是存放另一个变量的地址。
例如: int a=10,*p;
p=a;
将变量a的地址赋给指针变量p,如图2-9所示。
2、指针变量的定义与引用 (20分钟)
(1)指针变量的定义
指针变量的定义格式:数据类型 *标识符;
说明:“*”表示该变量为一个指针变量。标识符为指针变量名,取名规则与一般变量取名规则相同。
例 :int *p1; /*定义p1为指向整型变量的指针变量*/
char *c1; /*定义c1为指向字符型变量的指针变量*/
float *f1; /*定义f1为指向实型变量的指针变量*/
以上定义的3个指针变量,其中,p1可以存放整型变量的地址;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) * 取内容运算符
作用:取指针变量所指变量的值,又称间接访问运算符
考虑:存储单元的地址与变量间有什么样的关系?
看下面例子:用现实生活中的例子使学生更好地理解上述问题,并找到两者之间联系。
主任办公室 书记办公室 教学秘书办公室
201 202 203
此处房间相当于存储单元、房间号相当于地址、“主任办公室”等相当于变量名。因此,对存储单元的访问,既可以通过变量名来实现,也可以通过地址来访问。
结论:对一个变量的访问(访问是指存、取其值或赋值等操作)有两种方式:①直接访问②间接访问
①直接访问:即直接通过变量名所对应的地址访问数据。
例:main()
{
int a=5;
printf(“a=%d\n”,a);
}
运行结果:a=5
通过变量名a与地址的对应关系,找到a的地址,然后从地址中取出数据5输出
②间接访问:即通过一个指针变量来访问数据。间接访问即先把某一变量的地址保存在一个指针变量中,若对该变量的数据进行操作,先要找到保存该变量地址的指针变量,然后从指针变量中取出保存的地址,再从地址中取出数据进行运算。
例:
main()
{
int a=10,*p;
p=a;
您可能关注的文档
- (文综)汕头市潮师高级中学2013届高二下学期六月月考.doc
- (普)台州市2008学年第1学期高一年级期末质量评估试题地理卷.doc
- (最新4年中考按29个知识点7大主题分类)2009–2012中考真题按知识点分类考点5水的组成.doc
- (湖北卷)2010年高考试题–语文(Word解析版).doc
- (物理)梅州市高三第2次总复习质检试卷.doc
- (沪科版同步学案)§8.4流体压强和流速的关系.doc
- (理综)湛江二中09–10学年度高一下学期期末考试.doc
- (生物)2009届肇庆市毕业班第1次统一测试.doc
- (理综)惠州市2013届高三第1次模拟考试.doc
- (真的值得一看)高中物理3–1知识点总结.doc
文档评论(0)