精通C程序设计第六章指针初步

精通C程序设计第六章指针初步

ID:38427651

大小:414.86 KB

页数:43页

时间:2019-06-12

精通C程序设计第六章指针初步_第1页
精通C程序设计第六章指针初步_第2页
精通C程序设计第六章指针初步_第3页
精通C程序设计第六章指针初步_第4页
精通C程序设计第六章指针初步_第5页
资源描述:

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

1、第六章指针初步本章内容提要:6.1指针的概念与基本操作6.2指针与一维数组6.3字符串处理重点小结作业6.1指针的概念与基本操作6.1.1指针的概念1.什么是指针?指针是C语言的一种数据类型,该数据类型以内存地址为值,并提供了相关的一系列操作。2.使用指针的优点与缺点直接访问内存,增强了高级语言的功能编程灵活度增加不易学习、掌握和正确安全地使用好指针6.1指针的概念与基本操作(续1)3.指针的基本属性(1)值属性:指针值即内存地址,它是一个非负整数(2)存贮属性:老式16位编程有三种,分别是:a.near(近)指针:16位段内偏移地址b.far(远)指针:16位段地址+16位段内偏移地址c.

2、huge(巨)指针:32位规格化的内存地址32位编程模式下,只有一种32位规格化地址(指针),不再区分near,far和huge。(3)对象属性:指该地址开始(指针指向)的内存单元中存放的数据。定义指针变量时,必须指定指针变量的对象类型。我们使用指针的主要目的就是通过指针访问内存中的数据。如:doublep;//指针p的对象是一个double型数据//指针p指向一个double型数据voidp;//指针p指向nothing//无值指针不能进行运算和存取操作6.1指针的概念与基本操作(续2)6.1指针的概念与基本操作(续3)6.1.2指针常量与变量1.指针常量(只有三种)(1)空指针:NU

3、LL符号常量NULL定义于头文件stdio.h中,其值为整数0,代表地址0和空指针的概念。空指针是值为0的指针(即NULL);空对象(无值)指针是没有对象不能进行存取操作的指针。(2)数组的名字:它是数组的首地址(3)函数的名字:代表子程序调用的入口地址6.1指针的概念与基本操作(续4)2.指针变量(1)定义方法:对象类型名指针变量名;例:intp,q;doubler;chars;注意:4//VC++6.0sizeof(p)=sizeof(q)=sizeof(r)=sizeof(s)=2//TC2.0说明:以VC++6.0为例,每个指针变量用于保存一个32位(4字节)内存地址。指针

4、变量的存储长度与其对象类型无关。(2)指针类型名T例如:doubler;charp;p=(double)r;6.1指针的概念与基本操作(续5)(3)指针变量的初始化C语言允许用指针常量表达式对指针变量初始化.例:inta[4],p=NULL,q=a+1;#include…double(f)(double)=sin;注意:(a)不能将一个整数值直接作为内存地址对指针变量进行初始化。如:longp=0x410;6.1指针的概念与基本操作(续6)(b)作为一种特殊情况,C语言允许用一个字符串常量初始化一个char*型的指针变量如:chars="ABCD";变量s得

5、到的是字符串常量第一个字符(字母A)的地址,即串首地址。6.1.3指针的基本运算与操作1.取地址运算:&L_value例:inta[5],p,q,b=15;p=&a[1];q=&b;6.1指针的概念与基本操作(续7)2.取对象运算:指针表达式例1:inta=123,p;p=&a;printf("%d",p);//则打印结果为123,即变量a的值例2:inta=0x4241;charp;p=(char)&a;putchar(p);//则打印结果为A理解帮助-指针、指针变量与指针对象的关系6.1指针的概念与基本操作(续8)若有定义:doublep;charq;假设指针变量p的

6、值(即变量p保存的地址值)为0xB8000000,表达式p表示从p保存的地址值指定的内存中取一个double型数据(即从内存地址0xB8000000开始连续取8字节单元)。若q的值也是0xB8000000,表达式q表示从q保存的地址值指定的内存中取一个float型数据(即从内存地址0xB8000000开始连续取4字节单元)。若有定义:floata=0.5f,r=&a;假设变量a的存储地址为0xA0000000,则指针变量r得到的值为0xA0000000,执行初始化floatr=&a;后,有表达式r表达式a表达式r表达式&a6.1指针的概念与基本操作(续9)3.指针对象的有关操作

7、指针对象可进行与之同类型变量的所有运算。例:inta,p=&a;p=15;/*相当于a=15*/p=2;/*相当于a=a2*/(p)++;a++;/*指针对象自加减1必须用小括号*/比较*p++(p);a;++(p);++a;(p);a;p=(p)(p);/*相当于a=aa;*/scanf("%d",p);scanf("%d",&a);scanf("%d

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

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

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