C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt

C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt

ID:51963617

大小:1.83 MB

页数:50页

时间:2020-03-26

C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt_第1页
C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt_第2页
C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt_第3页
C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt_第4页
C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt_第5页
资源描述:

《C语言从入门到精通教学课件作者第2版PPT第10章 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、指针1、指针相关概念2、数组与指针3、指向指针的指针4、指针变量做函数参数5、返回指针值的函数6、指针数组做main函数的参数指针相关概念地址与指针系统的内存就好比是带有编号的小房间,如果想使用内存就需要得到房间编号。第一张图定义了一个整型变量i,整型变量需要4个字节,所以编译器为变量i分配的编号为1000~1003。什么是地址?地址就是内存区中对每个字节的编号,第二张图所示的1000、1001、1002、1003就是地址,为了进一步说明来看图10.2。第二张图所示的1000、1004等就是内存单元的地址,而0、1就是内存单元的内容

2、,换种说法就是基本整型变量i在内存中的地址从1000开始。因为基本整型占4个字节,所以变量j在内存中的起始地址为1004,变量i的内容是0。指针是什么呢?那么指针又是什么呢?这里仅将指针看做是内存中的一个地址,多数情况下,这个地址是内存中另一个变量的位置,如图10.3所示。在程序中定义了一个变量,在进行编译时就会给该变量在内存中分配一个地址,通过访问这个地址可以找到所需的变量,这个变量的地址称为该变量的“指针”。下图所示的地址1000是变量i的指针。变量与指针变量的地址是变量和指针二者之间连接的纽带,如果一个变量包含了另一个变量的地

3、址,则可以理解成第1个变量指向第2个变量。所谓“指向”就是通过地址来体现的。因为指针变量是指向一个变量的地址,所以将一个变量的地址值赋给这个指针变量后,这个指针变量就“指向”了该变量。例如,将变量i的地址存放到指针变量p中,p就指向i,其关系如下图所示。指针变量由于通过地址能访问指定的内存存储单元,可以说地址“指向”该内存单元。地址可以形象地称为指针,意思是通过指针能找到内存单元。一个变量的地址称为该变量的指针。如果有一个变量专门用来存放另一个变量的地址,它就是指针变量。在C语言中有专门用来存放内存单元地址的变量类型,即指针类型。下

4、面将针对如何定义一个指针变量、如何为一个指针变量赋值及如何引用指针变量这3方面内容加以介绍。(1)指针变量的一般形式如果有一个变量专门用来存放另一变量的地址,则它称为“指针变量”。图10.4所示的p就是一个指针变量。如果一个变量包含指针(指针等同于一个变量的地址),则必须对它进行说明。定义指针变量的一般形式如下:类型说明*变量名其中,“*”表示该变量是一个指针变量,变量名即为定义的指针变量名,类型说明表示本指针变量所指向的变量的数据类型。(2)指针变量的赋值指针变量同普通变量一样,使用之前不仅需要定义,而且必须赋予具体的值。未经赋值

5、的指针变量不能使用。给指针变量所赋的值与给其他变量所赋的值不同,给指针变量的赋值只能赋予地址,而不能赋予任何其他数据,否则将引起错误。C语言中提供了地址运算符“&”来表示变量的地址。其一般形式为:&变量名;如&a表示变量a的地址,&b表示变量b的地址。给一个指针变量赋值可以有以下两种方法。定义指针变量的同时就进行赋值:inta;int*p=&a;先定义指针变量之后再赋值:inta;int*p;p=&a;#includemain(){inta,b;int*ipointer1,*ipointer2;/*声明两个指针

6、变量*/scanf("%d,%d",&a,&b);/*输入两个数*/ipointer1=&a;ipointer2=&b;/*将地址赋给指针变量*/printf("Thenumberis:%d,%d",*ipointer1,*ipointer2);}【实例10.1】从键盘中输入两个数,利用指针的方法将这两个数输出。(3)指针变量的引用引用指针变量是对变量进行间接访问的一种形式。对指针变量的引用形式如:*指针变量其含义是引用指针变量所指向的值。#includemain(){int*p,q;printf("pleas

7、einput:");scanf("%d",&q);/*输入一个整型数据*/p=&q;printf("thenumberis:");printf("%d",*p);/*输出变量的值*/}【实例10.2】利用指针变量实现数据输入、输出。#includemain(){int*p,q;p=&q;printf("pleaseinput:");scanf("%d",p);printf("thenumberis:");printf("%d",q);/*输出变量的地址*/}或者(4)“&”和“*”运算符在前

8、面介绍指针变量的过程中用到了“&”和“*”两个运算符,运算符“&”是一个返回操作数地址的单目运算符,叫作取地址运算符,例如:p=&i;就是将变量i的内存地址赋给p,这个地址是该变量在计算机内部的存储位置。运算符“*”是单目运算符,叫作

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

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

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