欢迎来到天天文库
浏览记录
ID:44209420
大小:647.50 KB
页数:58页
时间:2019-10-19
《C前言课件 7 》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章指针C语言程序设计烟台大学计算机学院刘培华1第7章指针说明:指针是c语言中的重要概念,正确而熟练地掌握指针的概念和指针的使用能设计出复杂的数据结构和高效的程序。如正确使用指针能动态分配内存;能方便地使用字符串;有效而方便地使用数组;能直接处理内存地址等。这些对于系统软件的设计都是很必要的。2021/7/222第7章指针指针和指针变量指针与数组指针与函数主要内容2021/7/2237.1指针和指针变量1、地址与指针2、指针变量与指针3、指针变量类型及指针变量的定义4、指针的引用2021/7/224
2、1、指针与地址指针的含义:在计算机内部,地址犹如要找存储区的路标,在程序设计语言中通常形象地称地址为指针。简单地讲,指针就是地址。7.1指针和指针变量2021/7/2252000...FFFF1001010101010101...1001010101010101地址内容指针7.1指针和指针变量2021/7/226#includeexit(0);2021/7/227….ab20102012p2010q因此,在C语言中,将地址形象化地称为指针201210352021/7/2282、指针
3、变量与指针指针变量就是存放地址的变量,也就是说,指针变量的值就是指针,即地址。7.1指针和指针变量2021/7/2293、指针变量类型及指针变量的定义C语言规定所有变量在使用前必须定义,指定其类型,并依此分配内存单元,故指针变量虽然有别于其它变量,是专门用来存放地址的,仍然在使用前要为其定义类型。通常简称指针变量的类型为指针类型。7.1指针和指针变量2021/7/2210定义指针变量的一般形式为:基类型*指针变量名7.1指针和指针变量2021/7/2211说明:指针指针变量名前面的“*”表示该变量的类
4、型是指针类型,用来与其它类型的变量进行区分;在定义指针变量时必须指明基类型。因为基类型不同的指针变量在指针的移动和指针的运算过程7.1指针和指针变量2021/7/2212中移动和改变一个位置代表的含义不同。如:float*p;char*q;对于p++和q++对应的指针移动是不同的,前者移动4个存储单元,后者移动1个存储单元。7.1指针和指针变量2021/7/22134、指针的引用指针运算符指针初始化7.1指针和指针变量2021/7/2214定义了一个指针变量之后,就可以对其进行各种操作,如给指针变量赋
5、一个地址值;输出一个指针变量的值;访问指针变量所指向的变量等。在c语言中有两个有关指针的运算:&→取地址运算符;*→指针运算符7.1指针和指针变量2021/7/2215前者可用来取一个变量的地址,后者可用来表示一个指针变量指向的变量或存储单元的值。指针变量中只能存放地址,不要将一个整型量或其它非地址类型的数据赋给一个指针变量。注意:7.1指针和指针变量2021/7/2216指针变量可以有自动的,外部的和静态的存储类型。其中外部和静态存储类型的指针变量如果没有显式初始化,则编译系统自动置初始值为NULL
6、(ASCII码为0的字符),习惯上称为空指针。但自动存储类型的指针变量7.1指针和指针变量2021/7/2217如果没有显式初始化,编译系统不将其置为NULL的初始值,它们的值是不可知的,这时如对其进行引用,轻则破坏程序的运行,重则导致系统的崩溃。所以该类指针在使用前必须进行初始化或赋初值,只有通过这些处理,使其指向一个确定的地址,我们才能在程序中进行使用。7.1指针和指针变量2021/7/2218intsz[10],*q=sz;/*把数组sz地址赋给指针变量q*/inti,*p=&i;/*把变量i的
7、地址赋给指针变量p*/inti,*p;...p=&i;/*把变量i的地址赋给指针变量p*/如:7.1指针和指针变量2021/7/2219应用举例:main(){inti,*p;staticint*q;p=&i;i=100;printf(“i=%d,*p=%d”,i,*p);printf(“q=%d”,q);}2021/7/22207.1指针和指针变量main(){floatx;inty;…}变量的两个物理意义200020012002200320042005…xy变量的内容变量的地址2021/7/222
8、1main(){inta,b,c;a=5;b=3;c=a+b;…}200020012002200320042005abc5直接将整数5存入变量a3直接将整数3存入变量b8直接将变量a、b的值取出,相加后存入变量c利用变量名存取数据的方式称为“直接存取”方式。2021/7/2222C语言还提供了对内存单元的“间接存取”方式p20002001200220032004200520062007abc532004a和b相加的结果(*p=a+b)存放到变量p所指向的
此文档下载收益归作者所有