《计算机软件基础》PPT课件.ppt

《计算机软件基础》PPT课件.ppt

ID:51621643

大小:844.36 KB

页数:83页

时间:2020-03-26

《计算机软件基础》PPT课件.ppt_第1页
《计算机软件基础》PPT课件.ppt_第2页
《计算机软件基础》PPT课件.ppt_第3页
《计算机软件基础》PPT课件.ppt_第4页
《计算机软件基础》PPT课件.ppt_第5页
资源描述:

《《计算机软件基础》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机软件技术基础(6)4复杂数据类型和程序设计本章主要内容1.指针类型和程序设计2.数组类型和程序设计3.结构类型和程序设计4.共用体类型和程序设计5.位运算和位段6.文件7.应用程序举例4.1指针类型和程序设计本节主要内容指针的概念和指针的运算指针变量用作函数参数函数的指针与函数调用返回指针值的函数4.1.1指针的概念和指针的运算指针就是内存单元所对应的地址。每个存储单元都对应有一个地址和一个名称(如变量名)。因此,C语言中提供了两种对存储单元访问的方式:通过名称和通过变量的地址。由于在系统中内存单元的地址是用有序数来表示的,为了能够操作这些地址,C提供

2、了一种相应的特殊变量来存放这些地址:指针变量。1.501011H1010Ha1015H-1241016H51018H821020H1e-31022H1026Hxcijky…………值地址变量名存储类型数据类型*指针变量名;如:char*cptr;其中,存储类型——指针变量本身的存储类型,与变量一样也有四种:register、auto、static、extern;数据类型——指针变量指向目标的数据类型,可以是基本数据类型,也可是构造数据类型;指针变量名——用“*”引导的一个变量名。指针变量定义时若要初始化,其初值应是初始化地址值:&变量名。如:charch,*c

3、ptr=&ch;1.指针变量的定义C语言中对指针变量的操作有两个专门的算符:&和*。1)&运算符&运算符为取地址运算符,功能是得到操作对象的地址。例如:scanf(“%d,%d”,&x,&y);从键盘上输入两个值存放到x和y两个变量对应的地址中。2)*运算符*运算符是指针运算符(也叫间接运算符),作用是取得指针变量所指向的内存单元的内容。例如:y=*ptr;将指针变量ptr所指向的内存单元中的内容赋给变量y。2.指针变量的引用(1)算术运算:指针变量只能进行加整数或减整数的算术运算,即指向后面某个或前面某个内存单元。如:p++;p--;++p;--p;p=p

4、+n;p-3;等。(2)赋值运算:可以将一个变量的地址赋给一个指针变量,也可以将一个指针变量指向的地址赋给另一个指针变量。例如:ptr=&x;aptr=bptr;(3)两个指针变量的加减运算没有意义;因为两指针相加或相减后的值不一定会指向另一个内存单元地址。(4)空指针没有意义,而且可能会危害系统。因为空指针的值是随机的。3.指针的运算4.1指针类型和程序设计本节主要内容指针的概念和指针的运算指针变量用作函数参数函数的指针与函数调用返回指针值的函数4.1.2指针变量作函数参数用指针作函数的参数,这就是函数调用时的另一种数据传递方式——传址方式。在函数的传址调

5、用方式中,以变量的地址为实参来调用另一个函数,而被调函数所对应的形参则必须是可以接受地址的指针变量,并且所指向的数据类型要与对应实参地址所代表的数据类型一致。传址调用方式在主调函数和被调函数间传递数据的实质是:数据在主调函数和被调函数中使用的都是同一个内存单元,因此,被调函数中该内存单元中的数据值发生改变必然会反映到主调用单元中来。例一用指针变量做函数的参数#includevoidmain(){intadd(int*ptr1,int*ptr2);intx1,x2,y;scanf(“%d,%d”,&x1,&x2);y=add(&x1,&x2)

6、;printf(“%d+%d=%d”,x1,x2,y);}intadd(int*ptr1,int*ptr2){intz;z=*ptr1+*ptr2;return(z);}x1地址x1值x2地址x2值例二指针变量与指针指向的变量指针变量和指针指向的变量是两个不相同的概念。如以下语句中:intx,*ptr;ptr=&x;ptr是指针变量,而x则是指针ptr指向的变量。看下面程序:#includevoidmain(){intx,y,*p1,*p2;scanf(“%d,%d”,&x,&y);printf(“%dt%d”,x,y);p1=&

7、x;p2=&y;if(xvoidmain(){intx,y,*p1,*p2;scanf(“%d,%d”,&x,&y);printf(“%dt%d”,x,y);p1=&x;p2=&y;if(x

8、){int*temp;temp=pr1;pr1=pr

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

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

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