指针变量的定义和运算指针变量作函数参数.pptx
《指针变量的定义和运算指针变量作函数参数.pptx》由会员分享,可在线阅读,更多相关《指针变量的定义和运算指针变量作函数参数.pptx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教学主题教学主题指针变量的定义和运算、指针变量作函数参数指针变量的定义和运算、指针变量作函数参数教学目标教学目标 通过本次课的学习,使学生掌握指针的概念、通过本次课的学习,使学生掌握指针的概念、指针变量的概念和定义方法、指针变量的运算、指针变量的概念和定义方法、指针变量的运算、以及指针变量作为函数参数的用法。以及指针变量作为函数参数的用法。教学重点教学重点 1、指针变量的定义、赋值、指针变量的定义、赋值 2、指针变量的运算、指针变量的运算 3、指针变量作为函数参数的用法、指针变量作为函数参数的用法教学难点教学难点 1、指针和指针变量的区别、指针和指针变量的区别 2、指针变量作为函数参数的实质及
2、效果指针变量作为函数参数的实质及效果教案第1页/共35页主要内容 指针和指针变量的概念指针和指针变量的概念 指针变量的定义和赋值指针变量的定义和赋值 指针变量的运算指针变量的运算 指针变量作为函数的参数指针变量作为函数的参数第2页/共35页为什么引入指针 指针是指针是C语言的特色、精华语言的特色、精华 程序设计时应用指针的好处程序设计时应用指针的好处 支持动态分配内存支持动态分配内存 能有效而方便地使用数组(包括字符串)能有效而方便地使用数组(包括字符串)可以在函数调用时返回多个值可以在函数调用时返回多个值第3页/共35页举例 在程序中,有如下语句。问:内存中会如何变化?在程序中,有如下语句。
3、问:内存中会如何变化?int x,y;x=12;y=20;1220内存单元的编号,叫地址&x&y第4页/共35页内存地址 在计算机中,在计算机中,所有的数据所有的数据都是都是存放在存放在存储器中的。存储器中的。一般把存储器中的一般把存储器中的一个字节一个字节称为称为一个内存单元一个内存单元。为了正确地访问这些内存单元,必须为了正确地访问这些内存单元,必须为每个内存为每个内存单元编上号单元编上号。根据编号就可以准确地找到该内存单。根据编号就可以准确地找到该内存单元。元。内存单元的编号内存单元的编号也叫做也叫做内存内存地址地址。第5页/共35页 程序中一个变量包含了两个概念:变量在内存中的地址 存
4、放在该地址中的内容 注意 变量的地址是由系统分配的,在程序中只可使用,不能修改。内存单元的地址和内存单元的内容内存单元的地址内存单元的内容第6页/共35页指针和指针变量的定义 C语言中,将语言中,将地址地址形象化地称为形象化地称为“指针指针”。意思是。意思是通过它可以找到以它为地址的内存单元。通过它可以找到以它为地址的内存单元。一个一个变量的地址变量的地址称为称为该变量的指针该变量的指针。即:即:指针就指针就是内存地址。是内存地址。如果一个变量专门存放另一个变量的地址(即指如果一个变量专门存放另一个变量的地址(即指针),则称为针),则称为指针变量指针变量。问:指针、指针变量是一回事吗?问:指针
5、、指针变量是一回事吗?第7页/共35页指针变量举例 在图6-2中,变量x占用了20A0起的2个内存单元,其内容(值)为12。设有指针变量P,内容为20A0。这种情况我们称为P指向变量x,或称P是指向变量x的指针变量。第8页/共35页指针变量的定义 定义指针变量时要包括三个内容:定义指针变量时要包括三个内容:指针变量类型说明,即标明变量为一个指针变量。指针变量类型说明,即标明变量为一个指针变量。指针变量名。指针变量名。指针变量所指向的变量的数据类型。指针变量所指向的变量的数据类型。其一般形式为:其一般形式为:类型标识符类型标识符 *指针变量名;指针变量名;标明这是一个指针变量变量名本指针变量所指
6、向的变量的数据类型第9页/共35页定义指针变量举例 针对图针对图6-2,应该如何定义,应该如何定义x和和p?int x;int *p;表示表示p是一个指针变量,是一个指针变量,它指向某个整型变量。它指向某个整型变量。如何给这两个变量赋值?如何给这两个变量赋值?x=12;p呢?呢?第10页/共35页指针变量的赋值指针变量指针变量同普通变量一样,使用之前不仅要同普通变量一样,使用之前不仅要定义定义,而且,而且必必须赋予具体的值须赋予具体的值。给指针变量赋值给指针变量赋值只能赋予地址只能赋予地址,不能赋予任何其它数据。,不能赋予任何其它数据。语言中提供了语言中提供了地址运算符地址运算符&来表示变量的
7、地址。来表示变量的地址。其一般形式为:其一般形式为:&变量名变量名例如:例如:&a变示变量变示变量a的地址。的地址。第11页/共35页指针变量赋值举例 针对图针对图6-2,有如下语句:,有如下语句:int x;int *p;x=12;如何给如何给p变量赋值?变量赋值?p=&x;如何在定义的同时给变量赋值?如何在定义的同时给变量赋值?int x=12;int *p=&x;在用之前,x已定义第12页/共35页给指针变量赋值时的注意点 可以让指针变量不指向任何变量。可以让指针变量不指向任何变量。int *p;p=NULL;(NULL在在stdio.h中有定义)中有定义)通常不允许直接把一个数值赋给指
8、针变量。通常不允许直接把一个数值赋给指针变量。int*p;p=1000;被赋值的指针变量前不能再加被赋值的指针变量前不能再加“*”说明符。说明符。int a,*p;*p=&a;一个指针变量只能指向同类型的变量。一个指针变量只能指向同类型的变量。float b;int *p;p=&b;错误的用法错误的用法错误的用法第13页/共35页指针变量的特殊性 指针变量也是一种变量。指针变量只不过是一种特殊的变量,其特殊性表现在类型和值上。指针变量的类型是指针所指向的变量的类型。指针变量的值是某个变量在内存中的地址。第14页/共35页指针变量使用技巧 指针变量的使用原则:先赋初值(地址),再使用。理由:安全
9、使用指针变量的方法:对暂时不使用的指针,可先定义成空指针。即将其赋值为NULL。使用未经赋值的(浮游)指针危害很大。第15页/共35页与指针变量有关的运算符 与指针变量有关的运算符与指针变量有关的运算符有两个有两个:&和和*。取地址运算符(取地址运算符(&)单目运算符,右结合。单目运算符,右结合。取内容运算符(取内容运算符(*),也叫指针运算符),也叫指针运算符 单目运算符,右结合。单目运算符,右结合。作用:用来表示指针变量所指向的变量的内容。作用:用来表示指针变量所指向的变量的内容。第16页/共35页指针变量引用举例问:下面程序的运行结果是什么?问:下面程序的运行结果是什么?#include
10、 stdio.hvoid main()int a,b;int *p;a=123;p=&a;b=*p;*p=-200;printf(a=%d,b=%dn,a,b);p=&b;printf(“%d,%dn,b,*p);程序运行结果a=-200,b=123123,123运行程序(3_1)思考pp的指向;第2 2个printfprintf中的访问方式第17页/共35页指针变量的运算 除了除了&和和*两种运算之外,两种运算之外,指针变量还可以指针变量还可以进行进行赋赋值运算、加减算术运算和关系运算值运算、加减算术运算和关系运算。第18页/共35页指针变量的赋值运算 把一个指针变量的值赋予指向相同类型变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指针 变量 定义 运算 函数 参数
限制150内