网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第6章指针.ppt

C语言程序设计实验指导 教学课件 作者 唐新来 王萌 第6章指针.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 指针 * 指针是C语言的一种构造类型数据,在C程序中应用十分普遍。利用指针可以有效地表示数据对象的数据结构,动态地分配内存,方便地使用字符串和数组,灵活地实现函数间的数据传递,直接处理内存地址等。掌握指针的应用,可以使算法表达更确切,程序更清晰简练,代码更紧凑有效。指针极大地丰富了C语言的功能。 学习指针是学习C语言最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要做到这些,指针也是不难掌握的。 6.1 地址与指针的基本概念 6.2 指针变量的定义及初始化 6.3 指针运算符 6.4 指针变量的运算 6.5 指针与函数参数 6.6 数组和指针 6.7 字符串的指针和指向字符串的指针变量 6.8 函数指针变量与返回指针值的函数 6.9 指针数组和多级指针 6.1 地址与指针的基本概念 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编号。根据内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。在C语言中,允许用一个变量来存放指针(地址),这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某个内存单元的指针。 6.2 指针变量的定义及初始化 在C语言中,允许用一个变量来存放指针(地址),这种变量称为指针变量。即存放另一个变量地址的变量是指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。 6.2.1指针变量的定义 和其他变量一样,指针变量必须先定义,后使用。对指针变量的定义包括3个内容: (1) 类型说明:表示定义的变量是一个指针变量 (2) 指针变量名 (3) 指针所指向的变量的数据类型 其一般形式为: 类型说明符 *变量名; 其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。 例如: int *pointer1; 表示pointer1是一个指针变量,它的值是某个整型变量的地址。或者说pointer1指向一个整型变量。至于pointer1究竟指向哪一个整型变量,可以通过赋值语句来确定。 若定义 int i; 则语句pointer1=i; 表示pointer1指向整形变量i。 又如: float f; char c; float *pointer2; /* pointer2是指向浮点变量的指针变量 */ char *pointer3; /* pointer3是指向字符变量的指针变量 */ pointer2=f; /* 表示pointer2指向变量f */ pointer3=c; /* 表示pointer3指向变量c */ 6.2.2 指针变量的初始化 在定义指针变量的同时给指针变量赋一个初始值。 (1)将一个已经定义的变量的地址赋值给指针变量。 例如: int i=3; int *p=i; /* 将整型变量i的地址赋给整型指针p */ 上述语句等价于: int i=3,*p=i; (2)把一个已初始化的指针值作为初值赋值给另一个指针变量。 例如: char c,*p=c,*q=p; /* 指针p和q都将指向字符变量 c*/ (3)通过初始化定义空指针。 例如: int *p=0; /* 0是惟一能够直接赋给指针变量的整型数 */ 或者 int *p=NULL; 说明: NULL就是整数0。指针的内容是零时,该指针定义为空指针。空指针没有任何指向,只是指针的一种状态,在程序中常作为一种状态标志使用。在stdio.h头文件中有对NULL的定义: #define NULL 0 6.3 指针运算符 1.取地址运算符 其一般形式为: 变量名 表示返回变量的地址。 例如: int i, *pointer=i; /* i表示变量i的地址 */ 2.指针运算符* 为了表示指针变量和它所指向的变量之间的关系,在C语言中用符号“*”表示“指向”。 其一般形式为: *指针变量名 “*”也称为“间接访问”运算符,它返回指针所指向的存储单元的内容,

文档评论(0)

时间加速器 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档