C语言初级教程课件-第7章 指针.ppt

C语言初级教程课件-第7章 指针.ppt

ID:58886342

大小:595.50 KB

页数:73页

时间:2020-09-30

C语言初级教程课件-第7章 指针.ppt_第1页
C语言初级教程课件-第7章 指针.ppt_第2页
C语言初级教程课件-第7章 指针.ppt_第3页
C语言初级教程课件-第7章 指针.ppt_第4页
C语言初级教程课件-第7章 指针.ppt_第5页
资源描述:

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

1、第7章指针C语言大学实用教程内容提要指针的概念;难点:对指针数据类型的理解数组的下标法引用和指针法引用;难点:二维数组的地址和指针概念利用字符指针存取字符串;难点:字符数组和字符指针的区别与联系指针数组应用;难点:指向数组的指针与指针数组的区别带参数的main函数;动态内存分配函数及其应用;难点:一维、二维动态数组的实现动态数据结构(在第8章介绍)为什么引入指针的概念指针为函数提供修改变量值的手段指针为C的动态内存分配系统提供支持指针为动态数据结构(如例链表、队列、二叉树等)提供支持指针可以改善某些子程序的效率计算机内的存储部件

2、,所有指令和数据都保存在内存中速度快,但是掉电即失可以随机访问只要指明要访问的内存单元的地址,就可以立即访问到该单元地址是一个无符号整数,其字长一般与主机相同内存中的每个字节都有唯一的一个地址地址按字节编号,按类型分配空间内存(RandomAccessMemory) 地址(Address)直接访问和间接访问有两个上锁且放着物品的盒子A、B,如果你有A盒子的钥匙,则可以直接打开A盒子将物品取出;如果你有B盒子的钥匙,而A盒子的钥匙在B盒子中,要想取出A盒子中的物品,则必须先打开B盒子,取出A盒子的钥匙,再打开A盒子将物品取出。上面

3、两种情况就是直接访问和间接访问的概念。寻址方式寻址方式如何读写内存中的数据?通过变量地址访问变量所在的存储单元两种寻址方式1、直接(寻址)访问直接按变量地址来存取变量内容2、间接(寻址)访问通过指针变量间接存取它所指向的变量首先要定义一个指针变量,然后将一个同类型变量的地址赋给该指针变量(称指针变量指向该变量)间接访问的过程是:由指针变量得到变量的地址,根据该地址找到变量的存储区,再对该存储区的内容进行存取,从而实现了对变量的间接访问。关于指针的原则学习原则一定要学会其实通常的应用很简单与使用变量几乎无异使用原则永远要清楚每个指

4、针指向了哪里永远要清楚指针指向的位置是什么指针(Pointer)的概念指针也是一种数据类型简单地说,指针就是地址。二者是同一个概念的两种说法。只不过指针更形象一些。指针变量首先指针变量就是一个变量,和我们以前所讲的其它变量没有本质区别。不同之处在于这种变量中所存放的内容是地址。指针(Pointer)的概念…...…...2000200420062005整型变量i10变量i_pointer2001200220032000指针指针变量变量的内容变量的地址如何定义指针变量?定义指针变量int*p;定义了一个指针变量p,简称指针pp是变

5、量,int*是类型p里保存一个地址。此时这个地址是哪呢(p指向哪呢)?指针变量初始化int*p=&a;int*p;p=&a;*p像普通变量一样使用,其值是p指向的内存的内容(*p=a,但寻址方式不同)p可以动态(任意)地指向不同内存,从而使*p代表不同的变量inti,*p;p=&i;int*p;float*q;p=q;inti;float*p;p=&i;int*p;p=100;指针变量只存放地址!一个指针变量不能指向与其类型不同的变量!OK!应在类型相同的指针变量之间赋值&与*操作符&用来取变量的地址inti,*p; p=&i;

6、int*p,a[10]; p=a;int*p,a[10]; p=&a[0];int*p,a[10]; p=&a[5];*用来取指针指向地址的内容inti,*p; p=&i; *p=0;int*p,a[10]; p=a; *p=0;int*p,a[10]; p=&a[0]; *p=0;int*p,a[10]; p=&a[5]; *p=0;定义指针变量与取指针内容时的*含义不同指针的指向指针指向非其定义时声明的数据类型,将引起warningvoid*类型的指针可以指向任意类型的变量指针在初始化时一般int*p=NULL;NULL表示

7、空指针,即无效指针但它只是逻辑上无效,并不是真正地无效如果指针指向一个非你控制的内存空间,并对该空间进行访问,将可能造成危险指针变量与其它类型变量的对比共性在内存中占据一定大小的存储单元先定义,后使用特殊性它的内容只能是地址,而不能是数据必须初始化后才能使用,否则指向不确定的存储单元只能指向同一基类型的变量可参与的运算:加、减一个整数,自增、自减、关系、赋值指针运算(1/4)算术运算int*p,a[10];p=a;p++;指针的加减运算是以其指向的类型的字长为单位的6000600160026003600460056006p-1p

8、p+1指针运算(2/4)int*p,*q,a[10]; p=a; q=&a[5];q–p/*结果为5*/q=p+3;指针运算不能乱算一般只进行指针和整数的加减运算,同类型指针之间的减法运算其它运算,比如乘法、除法、浮点运算、指针之间的加法等,并无意义,所以也不支

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

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

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