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

第07章:指针,C语言程序设计课件,与中南大学出版社教材相配套.ppt

第07章:指针,C语言程序设计课件,与中南大学出版社教材相配套.ppt

  1. 1、本文档共134页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章:指针,C语言程序设计课件,与中南大学出版社教材相配套.ppt

C语言程序设计 第7章 指 针 7.1 地址与指针 7.2 指针变量的定义和使用 7.3 指针的算术运算和指针的比较 7.4 指针与数组 7.5 指针与字符串 7.6 指向指针的指针 7.7 指针与函数 7.8 指针应用中的一些问题 本章小结 7.1 地址与指针 1.地址、指针与指针变量 每个变量在内存中都会有相对固定的位置。变量所占内存单元数的多少,取决于它的数据类型。例: int a = 1, b = 2; float f1 = 1.1, f2 = 5.9 ; double d = 13.24; char c1 = A, c2 = B; 变量都有具体的内存地址。 “指向”是通过地址来体现的。如果一个指针变量p包含另一个变量x的地址,我们就称p“指向”x。 一个变量的地址就是它的指针,或者说地址就是指针,存放指针的变量就是指针变量。 2.指针变量的分类 指针变量可以分为两大类,即指向对象(变量、数组、结构、联合等)的指针变量和指向函数的指针变量。两类指针变量都是用来保存内存地址的特殊变量。 7.2 指针变量的定义和使用 7.2.1 指针变量的类型 在定义变量时要指定变量的数据类型,在定义函数时要指定其返回值的类型。例如: int i; float f; double max(double x, double y); 指针“变量”既然属于变量的范畴,必然会有相应的类型。要明确指针变量的类型,必须先弄清指针变量的定义方法(有关指针变量的定义,在7.2.2小节中介绍)。下面的两条语句,定义了两个指针变量: int *pi; double *pd; 对于上述两个指针变量的定义,相应指针变量的类型如下: int * /*指向int型的指针*/ double * /*指向double型的指针*/ 7.2.2 指针变量的定义及其初始化 1.指针变量的定义 指针变量必须先定义,经初始化后才能使用。指针变量的定义由基本类型、*和指针变量名组成。定义指针变量的一般形式如下: 类型标识符 *指针变量名; 其中,类型标识符是C语言中任何有效数据类型的标识符,指针变量名要符合C语言关于标识符的命名规定。例如, int *pi; float *pf; char *pc; 注意,在定义指针变量时,指针名前面的*表示该变量是指针变量,指针变量名并不包括这个*。 2.指针变量的初始化及其赋值 指针变量在定义之后,要及时地对指针变量进行初始化(设置变量在内存中的初值称为初始化)。例如: int *pi, i = 10; float *pf, f = 5.9f; char *pc, c = A; pi = i; pf = f; pc = c; 赋值语句“pi = i;”表示将变量i的地址赋给指针变量pi,这使得指针变量pi指向了变量i。 上述三条赋值语句产生的效果,分别是使pi指向i、使pf指向f、使pc指向c。 初始化的另一种形式是直接在指针变量的定义中进行。例如: int i = 10; float f = 5.9; char c = A; int *pi = i; float *pf = f; char *pc = c; 下面的初始化虽然合法,但有问题。 char *p = hello world; 如果两个指针变量的基本类型相同,那么一个指针变量的值可以赋给另一个指针变量。如果两个指针变量的基本类型不同,则要使用强制类型转换将赋值语句右边的指针类型转换为赋值语句左边的指针类型。例如, double d = 13.89; double *pd = d; float *d = (float *)pf; 但任何类型的指针变量之值都能不经转换就赋给void类型的指针变量。因为基本类型为void的指针,属于一般性指针,可以表示任何指针类型。 7.2.3 指针的使用 1.指针运算符 在C语言中,有两个指针运算符,即与*。 ① 运算符:取地址运算符,i即变量i的地址。 ② *运算符:间接访问运算符或引用运算符,*p表示p所指向的变量。 (1) 取地址运算 为一元运算符,只作用于一个操作数,它返回操作数的地址。例如, int *pi = count; 指针变量的基本类型必须与它所指变量的类型一致。 (2) 间接访问运算符* *是的补操作,它也是一元运算符,返回其操作数所指变量的值。例如,当pi中含有变量count的地址时, q = *pi; [例7-1] 指针运算—取地址运算符与间接访问运算符*。 #include stdio.h void main() { int a = 13; int *pa = a; /*使pa指向a*/ printf(The address of a is %p\n, a); printf

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档