C语言程序设计 第10章 指针

C语言程序设计 第10章 指针

ID:40238553

大小:575.00 KB

页数:61页

时间:2019-07-28

C语言程序设计 第10章 指针_第1页
C语言程序设计 第10章 指针_第2页
C语言程序设计 第10章 指针_第3页
C语言程序设计 第10章 指针_第4页
C语言程序设计 第10章 指针_第5页
资源描述:

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

1、第十章指针指针:C的一个重要概念、重要特色。它使C具备了强大的功能,使C成为程序设计语言之首。正确而灵活地运用它,就可以方便地处理很多其它高级语言所不能处理的问题。不掌握指针等于没有掌握C语言的精华。10.1指针的概念简单地说,指针就是地址。要掌握指针的概念就必须弄清:■内存地址概念?■变量与地址的关系?■如何通过地址进行变量的存取?说明例:内存用户数据10003i10026j10049k对变量值的存取总是按地址进行的----直接访问。inti,j,k;i=3;j=6;k=i+j;程序经编译后,变量名就不复存在,以地址对应。也可以采用“间接访问”方式:

2、先将变量i的地址存放到另一变量p1中,要访问i时,先取出p1的内容(变量i的地址),再去访问该地址所对应的内存单元中的内容(变量i的值)。内存用户数据10003i10026j10049k20001000p120041002p2inti,j,k;i=3;j=6;k=i+j;int*p1,*p2;p1=&i;p2=&j;在以上概念的基础上对指针下定义:变量的地址就是该变量的指针。存放地址的变量称指针变量。p1是指向变量i的指针变量。10001002100410001002ijkp1p210.2变量的指针变量的指针指针变量指向变量的指针变量用“*”代表“指向

3、”如*p1代表它所指向的变量i,同一内存单元。以下两个语句等价:i=3;直接访问*p1=3;间接访问内存用户数据10003i10026j10049k20021000p120041002p2inti,j,k;i=3;j=6;k=i+j;int*p1,*p2;p1=&i;p2=&j;*p1=3;■指针变量的定义指针变量也必须先定义后使用。int*p1;注意:①*表示该变量为指针变量,但变量名是p1。②一个指针变量只能指向同一类型的变量。inti,*p1;floata;p1=&i;合法p1=&a;不合法■指针变量的引用两种用法:①用地址运算符&p1=&i;②

4、用指针运算符*(实行间接访问)*p1=100;k=*p1;注意:指针变量只能放地址(指针)。p1=100;不允许例:main(){inta=100,b=10;int*p1,*p2;定义指针变量,尚无具体指向p1=&a;p1指向ap2=&b;p2指向bprintf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}注意:要区别定义和引用中的“*”要特别注意以下用法的后果:int*p1;*p1=100;例:输入a和b两个整数,按先大后小的顺序输出main(){inta,b,*p1,*p2,*p;scanf(“%d,%d”,

5、&a,&b);10005ap1=&a;p2=&b;10029bif(a

6、*p2){intt;t=*p1;*p1=*p2;*p2=t;10005a}10029bmain(){inta,b;scanf(“%d,%d”,&a,&b);2000p1if(a

7、printf(“%d,%d”,a,b);2006t}5959重要概念:使用指针变量作函数参数,被调函数可以通过主调函数给定的地址去操作主调函数中的局部变量。(可用于传递多个结果)例:编写函数,求一元二次方程的两个实根。#include“math.h”?root(floata,floatb,floatc,){floatd;d=b*b-4*a*c;if(d<0

8、

9、a==0)return(0);?=(-b+sqrt(d))/2/a;?=(-b-sqrt(d))/2/a;return(1);}float*x1,float*x2*x1*x2intmain()

10、{intk;floata,b,c,xa,xb;scanf(“%f,%f,%f”,&a,&b,&

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

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

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