C语言详解指针和数组.ppt

C语言详解指针和数组.ppt

ID:51992012

大小:300.00 KB

页数:65页

时间:2020-03-27

C语言详解指针和数组.ppt_第1页
C语言详解指针和数组.ppt_第2页
C语言详解指针和数组.ppt_第3页
C语言详解指针和数组.ppt_第4页
C语言详解指针和数组.ppt_第5页
资源描述:

《C语言详解指针和数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、再论指针和数组附录一预习检查链表单元有哪几个部分组成如何申请链表单元,及释放链表单元实现单链表插入的基本语法简述一下快速排序基本理论要点课程目标本章概述指针与数组什么时候相同C语言为什么把数组参数当作指针C语言的多维数组,及如何创建动态数组。本章目标掌握指针什么时候和数组相同,以为容易混淆的原因掌握多维数组的内存布局。使用指针向函数传递多维数组参数使用指针返回多维数组使用指针创建和使用动态数组重点指针和数组混淆的原因指针传递多维数组参数难点指针和数组混淆的原因创建和使用动态数组本章结构指针与数组不相同再论

2、指针和数组指针数组和数组指针指针与数组相同函数指针和指针函数怎样使用数组指针运算1再论指针和数组指针与数组的不相同指针与数组的相同怎样使用指针指针运算函数指针和指针函数指针数组和数组指针1.1指针与数组的不相同数组和指针是如何访问的数组访问指针数据使声明与定义相匹配数组和指针的其他区别1.1.1数组和指针是如何访问的申明区别externint*x;-》声明x是个int型的指针externinty[]-》y是个int型数组,长度尚未确定地址和内容的区别X=Y在这个上下文环境里,符号x的含义是x所代表的地址。

3、在这个上下文环境里,符号Y的含义是Y所代表的地址的内容。这被称为左值。这被称为右值。左值在编译时可知,左值表示存储结果的地方。右值直到运行时才知。如无特别说明,右值表示“Y的内容”。1.1.1数组和指针是如何访问的数组下标引用特点地址在编译时可知直接进行操作例:数组:chara[9]=“abedefgh”;...取值:c=a[i]+1+2+3+4…+i9980编译器符号表具有一个地址9980运行步骤:取i的值,将它与9980相加取地址(9980+i)的内容。图A1.1.2数组访问指针数据指针访问特点必须首

4、先在运行时取得它的当前值间接进行操作例:指针:char*p取值:c=*p5081编译器符号表有一个符号p,它的地址为4624运行步骤:取地址4624的内容,就是‘5081’取地址5081的内容。50814642图B1.1.2数组访问指针数据数组访问指针特点对内存进行直接的引用转化为间接引用例:数组:chara[9]=“abedefgh”;...取值:c=a[i]5081编译器符号表有一个符号p,它的地址为4624运行步骤:1.取地址4624的内容,即‘5081’。2.取得i的值,并将它与5081相加。3.

5、取地址[508l+i]的内容。50814642+1+2+3…+i5081+i图C1.1.2数组访问指针数据指针访问特点char*p=“abcdefgh”;…p[3]-》dchara[]=”abcdefgh”;…a[3]-》d访问特点取得符号表中P的地址,提取存储于此处的指针。把下标所表示的偏移量与指针的值相加,产生一个地址。访问上面这个地址,取得字符。1.1.3数组和指针的其他区别指针数组保存数据的地址保存数据间接访问数据,首先取得指针的内容,把它作为地址,然后从这个地址提取数据。如果指针有一个下标[I]

6、,就把指针的内容加上I作为地址,从中提取数据直接访问数据,a[I]只是简单地以a*1为地址取得数据通常用于动态数据结构通常用于存储固定数目且数据类型相同的元素。相关的函数为malloc(),free()。隐式分配和删除通常指向匿名数据自身即为数据名1.2指针与数组的相同什么时候指针与数组相同混淆的原因数组和指针规则为什么C语言把数组形参当作指针数组与指针归纳总结1.2.1什么时候指针与数组相同数组运用特性数组声明外部数组(externalarray)的声明数组的定义函数参数的声明运用特性作为函数参数的数组

7、名可以通过编译器转换为指针使用数组时,数组可以写成指针,可以互换1.2.1什么时候指针与数组相同数组与指针编译器处理时是不同的一个数组就是一个地址一个指针就是一个地址的地址在运行时的表示形式也是不一样的可能产生不同的代码1.2.2数组和指针混淆的原因分析:charmy_array[10]char*my_ptr;...j=strlen(my_array);J=strlen(my_ptr);printf(”%s%s”,my_ptr,my_array);1.2.2数组和指针混淆的原因数组和指针是相同的规则表达式

8、中的数组名(与声明不同)被编译器当作一个指向该数组第一个元素的指针1。下标总是与指针的偏移量相同在函数参数的声明中,数组名被编译器当作指向该数组第一个元素的指针1.2.3数组和指针规则“表达式中的数组名”就是指针C语言把数组下标作为指针的偏移量“作为函数参数的数组名”等同于指针1.2.3.1“表达式中的数组名”就是指针数组下标的引用一个指向数组的起始地址的指针加上偏移量”下标值的步长调整到数组元素的大小整型数的长度是4个字节,

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

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

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