C语言设计教程第8章 指针.ppt

C语言设计教程第8章 指针.ppt

ID:50087962

大小:909.50 KB

页数:28页

时间:2020-03-04

C语言设计教程第8章 指针.ppt_第1页
C语言设计教程第8章 指针.ppt_第2页
C语言设计教程第8章 指针.ppt_第3页
C语言设计教程第8章 指针.ppt_第4页
C语言设计教程第8章 指针.ppt_第5页
资源描述:

《C语言设计教程第8章 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章指针内容简介指针是C语言中的一个重要概念,正确而灵活的运用指针,可以有效的表示复杂的数据结构。但指针也是一个比较复杂的概念,对初学者来说比较难理解,而且指针使用灵活,容易出错。所以初学者在学习时一定要多思考、多练习。第1节指针的概念和定义1、地址和指针的概念在了解指针之前,我们先来了解一下数据在计算机中是如何存储和读取的。C语言程序在编译的时候,无论是数据还是变量,都是存放在内存单元中。系统会根据变量的类型分配一定的内存空间。如在一般微机系统中,int型数据分配2个字节,float型数据分配4个字节,char型数据分配1个字节等等(不同的系统中,具体可能会有些区别)。每个内存都会有一

2、个地址,这个地址相当于内存的编号,类似于学生宿舍中的门牌号。通过内存的地址,可以找到内存中存储的数据。第1节指针的概念和定义第1节指针的概念和定义第1节指针的概念和定义第1节指针的概念和定义第1节指针的概念和定义第1节指针的概念和定义第1节指针的概念和定义第1节指针的概念和定义思考与提高1、内存与内存地址内存(即内部存储器):是由大规模集成电路芯片组成存储器,包括RAM、ROM。运行中的程序和数据都是存放在内存中的。与之相对的是外部存储器。程序、数据是在内存中由CPU来执行和处理的。内存地址:内存是由内存单元构成的一片连续的存储空间,每个内存单元都有一个编号。这个编号就是内存地址(简称地址

3、)。CPU是通过内存地址来访问内存,进行数据存取的。2、变量用于存放各种类型的数据的内存空间。与变量相关的有下面几个概念:(1)变量名:变量名是给内存空间取的名字。(2)变量的地址:变量所使用的内存空间的地址。(3)变量值:也称为变量内容,在变量的地址所对应的内存空间中存放的数值。第1节指针的概念和定义3、指针、变量的指针和指针变量(1)指针:是指向一个内存单元,即内存单元的地址。(2)变量的指针:是指向一个变量对应的内存单元,即变量的地址。(3)指针变量:就是地址变量。地址实质上也是数据,可以保存在一个变量中。保存地址数据的变量就是指针变量。指针变量p中的值是一个地址值,可以认为p指向这

4、个地址。如果这个地址是一个变量i的地址,则称p指向变量i。第2节数组与指针第2节数组与指针上面两种方法等价,因为在前面数组的介绍里知道,数组名就是数组第一个元素的地址,所以a与&a[0]等价。在用p=a赋值时,并不是把整个数组赋值给指针p,而是把数组的首地址赋给指针p。将数组的地址赋值给指针后,引用数组的方法既可以通过数组名的方法,又可以利用指针。例如在上述指针p和数组a[10]间,*p与a[0]等价,*(p+1)与a[1]等价。注意,p+1的含义是将p指向数组的下一个单元。同理,*(p+i)与a[i]是等价的。除此之外,数组的元素还可以这样表示,a[i]等价于*(a+i)。第2节数组与指

5、针第2节数组与指针2、数组名和指针作为函数参数对于一维数组,在作为函数参数时,很多场合下,既可以用数组名的方法,也可以用指针的方法,在应用时要注意它们的格式和区别。第2节数组与指针第2节数组与指针第2节数组与指针思考与提高对于多维数组,指针也有类似的对应关系,但是应用要比一维数组复杂。现以二维数组为例进行说明。定义一个二维数组如下:intzip[4][2];该数组名zip为数组元素的首地址,即zip与&zip[0]相同,而zip[0]又为包含2个整数元素的数组,因此zip[0]与&zip[0][0]相同。定义二维数组的指针如下:int(*pz)[2];pz=zip;在定义指向二维数组的指针

6、时,必须要确定二维数组中一维数组的长度,另外定义时不能省略括号,写成*pz[2],因为[]的运算优先级要高于*。如果写成int*pz[2],则表示定义了两个由整型指针变量构成的数组。所以在应用的时候要注意区别。第3节字符串和指针1、字符串指针的定义因为字符串本质上可以看成是字符数组,所以字符串与指针之间的关系与上述数组与指针的关系类似。如定义一个字符串指针的方法如下:charstring[]=”Helloworld!”;char*str;str=stirng;这里先定义一个字符数组string来保存字符串”Helloworld!”,而指针str指向该字符数组,故str也就指向字符串”Hel

7、loworld!”,因为字符串名称本身也表示地址,所以也可以直接定义如下:char*str;str=”Helloworld!”;这样str同样也指向该字符串。或可以直接简写成char*str=”Helloworld!”;第3节字符串和指针第3节字符串和指针第3节字符串和指针第3节字符串和指针第3节字符串和指针第3节字符串和指针总结指针的数据类型包括:指向变量的指针、指向数组元素的指针、指向含n个一维数组的指针变量、指针数

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

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

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