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

指针与数组.ppt

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

实验15 指针概念及应用 15.2.1 变量与内存单元 1. 指针、地址、内存单元 内存由很多内存单元组成,这些内存单元都是用来存放数据的。 每个内存单元都有一个编号,称为地址。 由于通过地址可以找到对应的内存单元,也就是说一个地址“指向”它所对应的内存单元,因此地址被形象化地称为“指针”。 2. 变量与变量的地址 变量代表了一个内存单元,是用来存放数据的。 假如用下面两个语句定义了两个变量x和c: float x; int c; 那么x、c都代表内存单元,分别用来存放一个单精度实型数和一个整型数。 main() {float x; int y; … } 变量的地址用求地址运算符“”求出。 如变量x的地址是x,变量c的地址是c。 变量定义后在使用过程中不再重新分配内存单元,这个过程中变量的地址是一个常量。 15.2.2 指针变量 1. 指针变量的定义 变量是内存单元,不同类型的变量可以存放不同类型的数据,如整型变量可以存放一个整型数,实型变量可以存放一个实型数。 那么有没有一种变量可以存放一个地址(指针)呢? 这种变量就称为指针变量。 指针变量的定义格式: 类型名 *变量名; 如下语句定义了两个指针变量pt1和pt2。 int *pt1; /* 定义了指针变量pt1,其值是一个整型变量的地址 */ float *pt2; /* 定义了指针变量pt2,其值是一个实型变量的地址 */ 注意:这里定义的指针变量是pt1和pt2,而不是*pt1和*pt2。 ? 2. 指针变量的赋值与初始化 指针变量的值是指针,因此只能将指针赋值给指针变量。如: int x,*p1; /* 此语句定义了2个变量:x、 p1, 其中p1是指针变量。 */ char a,*p2; /* 此语句定义了2个变量:a、 p2, 其中p2是指针变量。 */ p1=x; /* 将x的地址赋给p1 */ p2=a; /* 将a的地址赋给p2 */ ? 指针变量的初始化就是在定义变量的同时给变量一个初始值。 如int x, *p=x; /* 相当于int x,*p; p=x; 注意这里x赋给p而不是*p */ 15.2.3 指针的指向 1. 指针变量的值与指针变量的指向 如果指针变量p的值是x,那么p指向x。 由于指针变量的值是可以变化的,因此指针变量随着其值的不同而指向不同的内存单元或变量。如: int x,y,*p; p=x; /* p的值是x,因此p指向x */ p=y; /* p的值改成y,因而p也指向了y */ 2. 指向运算 指向运算用运算符“*”表示,其格式为: *指针变量 以上表示“指针变量所指向的变量”。假如p是指针变量,那么*p就是p指向的变量。当p的值是a,即p指向a时,*p就是a。 3. 运算符“*”的三种含义 C语言中运算符“*”在不同的地方表示不同的含义:(1)“*”的位置在两个量的中间,表示“相乘”。 如:a*b 2*x+1 (2)“*”出现在变量定义语句或函数的形参列表中,表示变量是指针类型。 如:int *x; /* 表示x是指针类型 */ void fun(int *u){函数体}/*表示u是指针类型 */ (3)“*”的位置在一个变量的前面(但不是(2)的情况),表示指向运算。 如:*x=5; b=*t; (*u)++; printf(%d,*p); 15.2.4 指针与数组 1. 数组的指针表示 C语言规定,数组名代表了数组的首地址,是数组首个元素的地址,它是一个常量。换言之,数组名是一个指针,指向数组的第一个元素。 如 int x[20]; 那么x就是x[0], *x就是x[0]。 c语言中还规定:如果某个指针p指向数组的某个元素,则p+1指向数组的下一个元素。 由此得出:假如x是数组名, x+i就是x[i], *(x+i)就是x[i]。事实上,在C语言中,x[i]就是处理成 *(x+i) 进行运算的。 2. 用指针变量指向数组元素 可以定义指针变量指向数组元素。如: float x[10]; float *p; p=x; /*

文档评论(0)

zyzsaa + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档