- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章; 主要内容; 10.1地址和指针的概念;2. 另一种存取变量值的方式称为“间接访问”的方式。即,将变量i的地址存放在另一个变量中。;一个变量的地址称为该变量的“指针”。
例如,地址2000是变量i的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。上述的i_pointer就是一个指针变量。;10.2 变量的指针和指向变量的指针变量;下面都是合法的定义:
float *pointer_3;
char *pointer_4;
可以用赋值语句使一个指针变量得到另一个变
量的地址,从而使它指向一个该变量。
例如:
pointer_1=&i;
pointer_2=&j;;在定义指针变量时要注意两点:;在对指针变量赋值时需要注意两点:;在引用指针变量时,可能有三种情况:
⑴给指针变量赋值。如:
p=a;
⑵引用指针变量的值。如:
printf(“%o”,p);
⑶引用指针变量指向的变量。
有关的两个运算符:
& 取地址运算符。 a是变量a的地址。
* 指针运算符 (或称“间接访问”运算符),*p是指针变量p指向的对象的值。 ;例10.1 通过指针变量访问整型变量;例10 . 2 输入a和b两个整数,按先大后小的顺序输出
a和b。;运行情况如下:
5,9↙
a=5,b=9
max=9,min=5
当输入a=5,b=9时,由于a<b,将p1和p2交换。交换前的情况见图(a),交换后见图(b)。;10.2.3 指针变量作为函数参数;void swap(int *p1,int *p2)
{ int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
};例10.4输入3个整数a,b,c,要求按大小顺序将它们输出。
用函数实现改变这3个变量的值。 ;void exchange(int *q1, int *q2, int *q3)
{ void swap(int *pt1, int *pt2);
if(*q1<*q2) swap(q1,q2);
if(*q1<*q3) swap(q1,q3);
if(*q2<*q3= swap(q2,q3);
}
void swap(int *pt1, int *pt2)
{int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
} ; 10.3 通过指针引用数组;可以用一个指针变量指向一个数组元素。
例如:int a[10];
(定义a为包含10个整型数据的数组)
int *p;
(定义p为指向整型变量的指针变量)
p=&a[0];
(把a[0]元素的地址赋给指针变量p)
也就是使p指向a数组的第0号元素 。;C语言规定在指针指向数组元素时,可以对指针进行以下运算:
加一个整数(用+或+=),如p+1
减一个整数(用-或-=),如p-1
自加运算,如p++,++p
自减运算,如p--,--p
两个指针相减,如p1-p2 (只有p1和p2都指向同一数组中的元素时才有意义)。;分别说明如下:
如果指针变量p已指向数组中的一个元素,则p+1
指向同一数组中的下一个元素,p-1指向同一数组中
的上一个元素。
(2) 如果p原来指向a[0],执行++p后p的值改变了,在p的原值基础上加d,这样p就指向数组的下一个元素a[1]。
(3) 如果p的初值为&a[0],则p+i和a+i就是数组元素a[i]的地址,或者说,它们指向a数组的第
i个元素 。
*(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即a[i]。
(5) 如果指针变量p1和p2都指向同一数组,如执行p2-p1,结果是两个地址之差除以数组元素的长度。 ;10.3.3 通过指针引用数组元素 ;(1)下标法
#include stdio.h
void main()
{ int a[10];
int i;
for(i=0;i<10;i++)
scanf(″%d″,&a[i]);
printf(″\n″);
for(i=0;i<10;i++)
printf(″%d″,a[i]);
};(
您可能关注的文档
最近下载
- 利用DEFORM-3D模拟镦粗锻造.doc VIP
- 08 威科夫进阶课程.pdf VIP
- CB 673-2020 出入舱口盖规范.pdf
- GA_T 1788.1-2021 公安视频图像信息系统安全技术要求 第1部分:通用要求.doc VIP
- 大体积混凝土监理实施细则.docx VIP
- (正式版)D-L∕T 343-2010 额定电压66kV~220kV交联聚乙烯绝缘电力电缆GIS终端安装规程.docx VIP
- 危险化学品安全管理与安全技术培训.ppt VIP
- GPS33E巨人通力调试说明书.pdf VIP
- 重大接待保障措施(环卫作业).doc VIP
- 危险物品安全航空运输技术细则(20201016014015).pdf VIP
文档评论(0)