第十章+++指++++针

第十章+++指++++针

ID:45183364

大小:2.56 MB

页数:31页

时间:2019-11-10

第十章+++指++++针_第1页
第十章+++指++++针_第2页
第十章+++指++++针_第3页
第十章+++指++++针_第4页
第十章+++指++++针_第5页
资源描述:

《第十章+++指++++针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十章指针10.1指针的概念指针是C语言的重要特征,是C语言访问内存数据和程序的灵活和有效的手段。C语言的指针支持:⑴数组的地址引用;⑵函数的地址调用;⑶动态分配内存。⒈内存、地址、指针内存存放了计算机正在运行的程序和程序正在使用的数据。内存的基本单元是字节(Byte)。为了访问内存单元,CPU给每个内存单元一个编号,该编号称为该内存单元的地址。变量是程序中可以改变的量,当说明变量时,系统将为其在内存中开辟相应的内存单元。由此确定变量的地址及内存中的表示方式。2000H2001H2002H2003Hinta=0;a的内存单元a的地址&a如果有一变量p,

2、其内容存放了a的地址&a,通过p也可实现对a的访问,p称为指针,并指向a。00H20H00p⒉指针的说明指针是特殊类型的变量,其内容是变量的地址。在使用前必须说明,说明某标识符是指针类型,并可指向某种类型的对象。指针的说明格式:typepname1,…pnamen;标识符命名的指针变量名。指针标志。指针指向对象的类型。intp,q;/p、q是指向整型变量的指针。/floatpfValue,pf;/pfValue和pf是指向浮点型的指针。/⒊指针的引用定义指针的目的是通过指针引用内存对象,指针的引用应按如下步骤进行:⑴说明指针inta=0,p;⑵指针指向

3、对象p=&a;⑶通过指针引用对象p=p+2;指针操作的两种运算:取地址运算&&a表示取变量a地址的运算。间接运算p表示取指针p指向变量内容的运算。inta,p;2000Happ=&a;/p指向a。/2000Hp=2;2举例:#includevoidmain(void){intx,p;x=55;p=&x;printf(“%d,%u”,x,p);p=65;printf(“%d,%u”,x,p);}2000Hxp2000H5565关于指针的说明:⑴指针必须指向对象后,才能引用。intp;p=2;/Error!/⑵&和为互补运算。inta,p

4、;p=&a;则:&pp&aa⒋指针的运算指针是特殊类型的变量,其内容是变量的地址,因此,指针的运算及结果一定要符合地址逻辑。⑴五种算术运算inta,b,p1,p2;p1=&a;p2=&b;a2000Hb2400Hp1p22000H2400Hp1++;/含义指向a后的整型单元/2002H2002Hp1--;/指向a前的整型单元/p1+n;/指向a后的n个整型单元/p1-n;/指向a前的n个整型单元/p2-p1;/a和b之间差的单元数/结果200Hp±n相当于:p的实际内容±nsizeof(p);⑵六种关系运算比较两个同类型变量之间的地址关系。p1>

5、p2;指针运算说明#includevoidmain(void){inta,b,p1,p2;a=2;b=3;p1=&a;p2=&b;p1=p2;printf(“%d,%d”,a,b);a=3;b=5;p1=p2;printf(“%d,%d”,p1,p2);}差别a&a2000Hb&b2400Hp1p2232000H2400H10.2指针与数组数组是同类型的变量的集合,各元素按下标的特定顺序占据一段连续的内存,各元素的地址也连续,指针对数组元素非常方便。⒈指针与一维数组通过指针引用数组元素可以分以下三个步骤:⑴说明指针和数组intp,

6、a[10];⑵指针指向数组p=a;/指向数组的首地址/p=&a[0];/指向数组的首地址/⑶通过指针引用数组元素当指针指向数组的首地址时,则下标为i的元素地址为:p+i或a+i引用数组元素可以有三种方法:下标法:a[i]指针法:(p+i)数组名法:(a+i)注意:数组名是常量地址,不能改变!a=p;/Error!/举例:打印数组中的奇数。#includevoidmain(void){inti,a[10];for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]%2)prin

7、tf(“%d”,a[i]);}数组元素法。循环输入。循环判断,满足条件输出。数组名法。a+i(a+i)指针法。,p;p=a;p++(p+i)结果是否正确?p=a;p=&a[0];注意指针在运算时的变化。⒉指针与字符串(字符数组)字符串在内存中可以存储为两种形式:⑴字符数组⑵字符串常量可以使指针指向字符数组或字符串常量,通过指针引用字符数组或字符串的各个字符。指针与字符数组:charchp,ch[]=”Hello!”;/说明字符指针和字符数组/chp=ch;/指针指向字符数组/putchar((chp+2));/通过指针引用数组元素/指针与字符串:c

8、harchp;/说明字符指针/chp=“Hello!”;/指针指向字符串/puts(chp);

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

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

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