(演示)计算机程序设计基础(c语言)-第7章+指针

(演示)计算机程序设计基础(c语言)-第7章+指针

ID:44984044

大小:259.00 KB

页数:33页

时间:2019-11-06

(演示)计算机程序设计基础(c语言)-第7章+指针_第1页
(演示)计算机程序设计基础(c语言)-第7章+指针_第2页
(演示)计算机程序设计基础(c语言)-第7章+指针_第3页
(演示)计算机程序设计基础(c语言)-第7章+指针_第4页
(演示)计算机程序设计基础(c语言)-第7章+指针_第5页
资源描述:

《(演示)计算机程序设计基础(c语言)-第7章+指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章指针1内容提要指针的概念;用指针做函数参数;字符数组和字符指针指向数组的指针与指针数组动态内存分配函数及其应用;2存储器存储器是计算机存储数据和程序的记忆单元集合每个记忆单元由8位二进制位组成。cpu可读写其中的数据。分外存和内存.字节BYTE76543210位Bit11101101110011011000110111101101111010011110110111101101111011010F000F010F100F111000100110101011内存示意图地址0F01数据存储容量单

2、位:回顾3内存中的每个字节都有唯一的一个地址地址按字节编号,按类型分配空间内存可以随机访问,只要指明要访问的内存单元的地址,就可以立即访问到该单元内存回顾4寻址方式程序中如何读写内存中的数据?通过变量的地址访问变量所在的存储单元(寻址)两种寻址方式直接寻址通过变量名直接存取变量内容的访问方式.间接寻址通过指针变量来间接存取它所指向的变量的访问方式5为什么引入指针的概念指针为函数提供修改变量值的手段为C的动态内存分配系统提供支持为动态数据结构(如例链表、队列、二叉树等)提供支持可以改善某些子程序的效

3、率6指针的概念指针:另一个变量的首地址变量的指针就是变量的地址.指针变量:一种特殊的变量,存放地址的变量,用于间接访问其他变量7指针变量的定义一般形式类型关键字*标识符int*p;定义了一个指针变量p,简称指针pp是变量,int*是类型指针变量初始化p=&a;*p就像普通的变量一样使用,其值是p指向的内存的内容p可以动态(任意)地指向不同内存,从而使*p代表不同的变量8指针变量的定义20003i_pointer*i_pointeri2000例:inti,*i_pointer=&i;这个变量定义的语

4、句都包含了那些内容?变量有两个,整型变量i和i_pointer“*”:指针类型说明符,在变量定义时出现在变量名前面的表示该i_pointer变量为指针变量该指针变量i_pointer是指向整型变量的指针&:取地址运算符,&i运算后得到变量i的内存的(首)地址=:赋值运算符,赋值的结果是,对指针变量i_pointer进行了初始化.对指针变量i_pointer初始化的结果是,指针变量i_pointer指向变量i9指针变量的引用i=3;可以对i赋值,是直接寻址*i_pointer=3;可以对i赋值,是间

5、接寻址*:指针运算符*i_pointer:代表指针变量i_pointer所指向的变量10指针变量与其它类型变量的对比共性在内存中占据一定大小的存储单元先定义,后使用特殊性它的内容只能是地址,而不能是数据必须初始化后才能使用,否则指向不确定的存储单元,对该空间进行访问,将可能造成危险可参与的运算:加、减一个整数,自增、自减、关系、赋值只能指向同一基类型的变量11指针变量的应用main(){inta,b;int*pointer_1,*pointer_2;a=100;b=10;pointer_1=&a;

6、pointer_2=&b;printf("%d,%d",a,b);printf("%d,%d",*pointer_1,*pointer_2);}12指针变量的应用对输入的两个数按大小顺序输出main(){int*p1,*p2,*p,a,b;scanf("%d%d",&a,&b);p1=&a,p2=&b;if(a

7、为函数参数函数的参数可以是指针变量,作用是将一个变量的地址传送到另一个函数中指针变量做函数参数的经典例子:两数的互换14编写函数实现两数的互换voidSwap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;a=15;b=8;Swap(a,b);printf("a=%d,b=%d",a,b);}运行结果?15编写函数实现两数的互换(使用指针)voidSwap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp

8、;}main(){inta,b;*p1,*p2a=15;b=8;p1=&a;p2=&b;Swap(p1,p2);printf("a=%d,b=%d",a,b);}运行结果?16编写函数实现两数的互换(使用指针)voidSwap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}main(){inta,b;a=15;b=8;Swap(&a,&b);printf("a=%d,b=%d",a,b);}运行结果?17数组、指针、指针变量数组名代表数组的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。