C语言程序设计_第6章_指针

C语言程序设计_第6章_指针

ID:43926897

大小:2.79 MB

页数:87页

时间:2019-10-16

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

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

1、第6章指针C语言程序设计北京科技大学计算机系2021/7/246.1概述6.2指针和指针变量6.3指针与数组6.4指针和函数6.5动态存储分配第6章指针2021/7/246.1概述为什么要引入指针的概念?指针可以有效地表示复杂数据结构,如队列、栈、链表等。指针能象汇编语言一样处理内存地址,为动态内存分配提供支持。指针可实现对数组和字符串的方便使用,提高某些子程序的效率。6.1概述关于指针的原则学习原则一定要学会其实通常的应用很简单使用原则永远要清楚每个指针指向了哪里永远要清楚指针的指向位置是什么2021/7/242021/7/24main(){inta=5;intb;floatx=3.5

2、;…}变量的两个物理意义1001100210031004…1015101610171018…2002200320042005aBx变量的内容变量的地址6.2指针和指针变量5×35.0变量的内容变量的内容变量的地址变量的地址6.2.1基本概念变量的地址和变量的内容变量的地址变量所分配存储空间的首地址变量的内容变量在所分配的存储空间中存放的数据2021/7/242021/7/24main(){inta,b;floatx=35;a=5;b=a+3;…}1001100210031004…1015101610171018ab5直接将整数5存入变量a直接将变量a的值取出,相加后存入变量b利用变量名存

3、取数据的方式称为“直接存取”方式。直接存取和间接存取82021/7/24C语言还提供了对内存单元的“间接存取”方式p1001100210031004…1015101610171018…2004200520062007ab51001p1001a3main(){inta=5,b=3,*p;p=&a;*p=a+b;…}变量的地址称为变量的指针存放地址的变量称为指针变量p指向c,c为p所指向的目标变量。直接存取和间接存取8指针的类型和指针所指向的类型inta=5,b;floatx;int*pi;float*pf;pi指针的类型:int*pf指针的类型:float*pi所指向的类型:intpf所指

4、向的类型:float2021/7/242021/7/24voidmain(){floatx,*p1=NULL;float*p2=&x;inty,*p3=&y;charname[20],*cp=name;…}2000…2004…2008…2012…2016…2020…2040xp1p2yp3namecp20006.2指针和指针变量6.2.2指针变量的定义NULLvoidmain(){floatx,*p1,*p2;inty,*p3;charname[20];char*cp;…}指针变量定义的形式指针变量初始化数据类型*指针变量名201220206.2指针和指针变量说明:当把一个变量的地址作为

5、初值赋给指针时,该变量必须先给以定义,且该变量的数据类型必须与指针的数据类型一致也可把一个已初始化的指针值作为初值赋予另一指针也可通过初始化定义某种类型的空指针2021/7/246.2.2指针变量的定义2021/7/246.2指针和指针变量取地址运算&&变量名或数组元素名inti,*p; p=&i;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=

6、0;6.2.3指针的基本运算pa——指针变量*pa——指针pa的目标变量&pa——指针变量pa占用存储区域地址2021/7/242000200120022003200420052006200720082009apxq20046.2指针和指针变量6.2.3指针的基本运算2000*p=&a;×main(){inta,*p;floatx,*q;p=&a;q=&x;…}赋值运算56.2指针和指针变量赋值运算把一个变量的地址赋给一个同类型的指针,如:inta,*pa;pa=&a;/*使pa指向变量a*/把一个指针的值赋给另一同类型的指针,如:charc,*s1=&c,*s2;s2=s1;/*结果s

7、1和s2指向同一变量c*/2021/7/246.2.3指针的基本运算6.2指针和指针变量赋值运算将地址常量如数组名赋给同类型的指针,如:char*str,ch[80];str=ch;/*使str得到字符数组ch的首地址,即str指向数组ch*/同类型指针算术运算的结果,如果还是地址量的话,可以赋值给同类型的指针。例如:int*p1,*p2,a[20];p1=a;p2=p1+5;p1=p2-3;2021/7/246.2.3指针的基本运

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

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

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