欢迎来到天天文库
浏览记录
ID:48031613
大小:1.96 MB
页数:90页
时间:2020-01-13
《C语言 第09章 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章指针第9章:指针学习的意义指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。C程序设计中使用指针可以:①使程序简洁、紧凑、高效②有效地表示复杂的数据结构③动态分配内存④得到多于一个的函数返回值⑤能象汇编语言一样处理内存地址,从而编出精练而高效的程序学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志,可以说不懂C语言中的指针就不懂什么是C语言。学习目标理解指针的概念掌握指针变量的定义与引用方法;掌握指针与数组、字符串之间的联系;掌握动态内存分配和释放的方
2、法;掌握带指针型参数和返回指针的函数的定义方法;掌握函数指针的用法;学习内容指针与指针变量的概念指针变量的定义和引用指针和地址运算指针与数组数组的指针和指向数组的指针变量指向多维数组的指针____数组指针元素为指针的数组____指针数组指针与字符串指针与动态内存分配多级指针指针与数组作为函数的参数指针作为函数的返回值____指针函数指向函数的指针____函数指针带参数的main函数本章小结…...内存2000200120022005020032004…...…...…...9.1指针与指针变量的概念1、内存地址──内存中存储
3、单元的编号101102201202301302401402501502601602教学楼教室号码存储地址教室存储单元教室有容量存储单元有大小(字节单元、字单元)50存储数据注意:内存单元的地址与内存单元中的数据是两个完全不同的概念。内存…...…...0200020012002200520032004…...…...2、变量地址──系统分配给变量的内存单元的起始地址程序中:inti;floatk;内存中每个字节有一个编号-----地址ik编译或函数调用时为其分配内存单元变量是对程序中数据存储空间的抽象i的地址k的地址注意:在
4、TC或BC下,系统将给变量i分配2字节的单元,而VC下将是4字节的单元!整型变量i变量i_pointer…...…...1020002004200620052001200220033、指针与指针变量指针:一个变量的地址指针变量:专门存放变量地址的变量2000指针变量整型变量i的内容指针变量i_pointer的内容(是地址)变量的地址指针指针变量变量变量地址(指针)变量值指向地址存入指针变量4、&与*运算符含义含义:取变量的地址单目运算符结合性:自右向左含义:取指针所指向变量的内容单目运算符结合性:自右向左两者关系:互为逆运算
5、理解200010i_pointer*i_pointer&i_pointerii_pointer&i&(*i_pointer)i*i_pointer*(&i)i_pointer=&i=&(*i_pointer)i=*i_pointer=*(&i)…...…...2000200420062005整型变量i10变量i_pointer2001200220032000指针变量i_pointer-----指针变量,它的内容是地址量*i_pointer----指针的目标变量,它的内容是数据&i_pointer---指针变量占用内存的地址直
6、接访问:按变量名来存取变量值间接访问:通过存放变量地址的变量去访问变量例i=3;-----直接访问指针变量…...…...2000200420062005整型变量i10变量i_pointer20012002200320003例*i_pointer=20;-----间接访问209.2指针变量的定义和引用1、变量值的存取方法指针变量…...…...2000200420062005整型变量i10变量i_pointer2001200220032000整型变量k10例k=i;k=*i_pointer;--直接访问--间接访问2、指针变
7、量与其所指向的变量之间的关系3变量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=3;3、指针变量的定义一般形式:[存储类型]数据类型符*变量名;合法标识符表示定义指针变量不是‘*’运算符指针的目标变量的数据类型指针变量本身的存储类型注意:int*p1,*p2;与intp1,p2;指针变量名是p1,p2,不是*p1,*p2指针变量只能指向定义时所规定类型的变量指针变量定义后,变量值不确定,应用前必须先赋值例int*p1,*p2;float*q;stat
8、icchar*name;例inti;int*p=&i;例int*p=&i;inti;例voidmain(){inti;staticint*p=&i;..............}()标准C下不能用auto变量的地址去初始化static型指针(但在C++程序中可以)4、指针变量的赋值初始化
此文档下载收益归作者所有