付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习内容指针的基本概念指针与数组指针与函数程序举例2第八章指针上节课内容回顾指针是变量的地址,指针变量是存放指针(变量地址)的变量指针变量赋值的方法(变量地址;相同类型的指针变量)指针变量必须先赋值,再指针运算符&——求址运算符(……的地址)*——指针运算符(……地址中的内容)3&与*操作符&用来取变量的地址int
i,
*p;p
=&i;int
*p,
a[10];p
=a;int
*p,
a[10];p
=&a[5];*用来取指针指向地址的内容int
i,
*p;p
=&i;*p
=
0;int
*p,
a[10];p
=a;*p
=
0;int
*p,
a[10];p
=&a[5];*p
=
0;45int
a
=3,
*p;p=&a;
(p指向整型变量a)printf(“%d\n”,*p);
(*p表示p所指向的地址中的数据,即a)b=*p;(*p与a相同)*p=100;(将100存到指针p所指向的变量中,即赋值给a)举例:main(){int
a,b;int
*pointer1,*pointer2;a=100;b=10;pointer1=&a;pointer2=&b;printf(“%d,%d\n”,a,b);printf(“%d,%d\n”,*pointer1,*poin}20002002200420062008abpointer1pointer261001020002002ter2);结果:100,10100,10使用指针变量的例子例:通过指针变量整型变量。
解题思路:先定义2个整型变量,再定义2个指针变量,分别指向这两个整型变量,通过访问指针变量,可以找到它们所指向的变量,从而得到这些变量的值。7#include
<stdio.h>int
main(){
int
a=100,b=10;pointer_1=&a;pointer_2=&b;return
0;}定义两个指针变量int
*pointer_1,
*pointer
2;使pointer 1指向a使pointer_2指向bprintf(“a=%d,b=%d\n”,a,b);
直接输出变printf(“*pointer_1=%d,*pointer_2
量a和b的值%d\n”,*pointer_1,*pointer_2);间接输出变量a和b的值8#include
<stdio.h>int
main(){
int
a=100,b=10;}此处*与类型名在一起。此时共同定义指针变量int
*pointer_1,
*pointer_2;pointer_1=&a;pointer_2=&b;printf(“a=%d,b=%d\n”,a,b);printf(“*pointer_1=%d,*pointer_2=%d\n”,*pointer_1,*pointer_2);return
0;此处*与指针变量一起使用。此时代表指针变量所指向的变量9指针变量与其它类型变量的对比共性在内存中占据一定大小的 单元先定义,后使用特殊性它的内容只能是地址,而不能是数据必须初始化后才能使用,否则指向不确定的 单元只能指向同一基类型的变量可参与的运算:加、减一个整数,自增、自减、关系、赋值10118.1.3
指针的运算规则*、&优先级相同,且右结合,与++、--、!单目运算符优先级相同,高于算术运算符int
a=2;int
*p=&a;int
*q=&a;*q++=*(q++)++表示取q所指向的内容,然后q地址值(*p)++
表示变量值++具有等价关系的例子写出下列各表达式的结果,int
a=5,*p=&a;&*p
*&a
(*p)++
&aa
*p++
*(p++)
a++*p与a
相同(地址)&*p
&5
&a*&a
*p
5=a
(变量)(*p)++≡a++
,将p
所指向的变量值加1*p++≡*(p++),先取*p,然后p自加,此时p不再指向a学生练习12指针的关系运算指针的关系运算即比较指针(地址)大小的运算if(p<q)printf(“p在内存中q的if(p==q)printf(“p与q指向同一。\n”);单元。\n”);if(p=='\0‘)printf(“p指向NULL。\n”);13【例8-2】输入两个整数i1和i2,利用指针将大数存放到i1中,小数存放到i2中,最后按i1、i2的顺序输出。按题意,定义两个指针变量p1、p2,将i1、i2的地址分别存入p1、p2,当i1<i2时利用指针变量p1、p2交换i1、i2的值然后输出14#include<stdio.h>main(){
int
i1,
i2,
*p1,
*p2,
t;p1=&i1;
p2=&i2;printf("Entertwo
numbers:\n");scanf("%d%d",p1,p2);/*
利用指针变量输入i1、i2的值*/if(i1<i2){t=*p1;*p1=*p2;*p2=t;}/*利用指针变量的指向操作交换i1、i2的值*/printf("i1=%d,i2=%d\n",i1,
i2);}15main(){int
i1,
i2,
*p1,
*p2,
*p;p1=&i1;
p2=&i2;printf("Enter
two
numbers:\n");scanf("%d%d",p1,p2);if(i1<i2){p=p1;
p1=p2;
p2=p;}printf("i1=%d,i2=%d\n",i1,
i2);}printf(“max=%d,min=%d\n”,*p1,*p2);16交换指针不能交换i1,i2的值17main(){int
i1,
i2,
*p1,
*p2,
*p;p1=&i1;
p2=&i2;printf("Entertwo
numbers:\n");scanf("%d%d",p1,p2);if(i1<i2){*p=*p1;
*p1=*p2;
*p2=*p;}printf("i1=%d,i2=%d\n",i1,
i2);}指针变量p没有存放普通变量的地址,指向是随机的188.1.4指针作为函数参数指针既然是数据类型,自然可以做函数的参数指针做参数的经典例子:两数的互换19void
Swap(int
*x,int
*y){int
temp;temp
=
*x;*x
=
*y;*y
=
temp;}main(){int
a,
b;a
=
15;b
=
8;Swap(
&a,
&b
);printf("a=%d,b=%d",a,b);}void
Swap(int
x,int
y{inttemp;temp
=
x;x=y;y=temp;}main(){int
a,
b;a
=
15;b
=
8;Swap(a,
b);printf("a=%d,b=%d",a,b);}程序1程序2编写函数实现两数的互换主调函数被调函数实参形参结果有何不同?主调函数被调函数main(){int
a,
b;a
=
15;b
=
8;Swap(a,
b);printf("a=%d,b=%d",a,b);}void
Swap(int
x,
int
y){int
temp;temp
=
x;x
=
y;y
=
temp;}1515ab实参形参88程序1xyab20xy被调函数main(){int
a,
b;a
=
15;b
=
8;Swap(&a,
&b);printf("a=%d,b=%d",a,b);}void
Swap(int
*x,
int
*y){int
temp;temp
=
*x;*x
=
*y;*y
=
temp;}&a&a实参形参&b&b程序2主调函数xyab21xy15a
b822【例8-4】int ast(int
x,
int
y,
int
*cp,
int
*dp){*cp=x+y;
*dp=x-y;}main(){int a=4,
b=3,
c,
d;ast(a,
b,
&c,
&d);printf("c=%d,
d=%d\n",
c,
d);}分析以下程序的运行结果23【课堂小结】指针的运算指针作为函数参数【学生实验】实验十一、指针的基本操作【预习内容】指针与数组24实验十一、指针的基本操作void
swap(int
*p1,int
*p2){ int
t;t=*p1;
*p1=*p2;
*p2=t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 日间照料中心健康档案管理方案
- 土地债务化解工作方案范文
- 作业层建设方案
- 门诊护理工作实施方案
- 组织工作方案包括
- 企业市场拓展创新营销实施方案
- 6月展会临时雇员服务合同范本
- 2026年办公家具租赁及保养合同范本三篇
- 2026年广东省开平市高一化学上册期末考试模拟试卷附参考答案(综合题)
- 2026年四川省华蓥市高一化学上册期末考试模拟试卷附答案【基础题】
- 2025年江苏省八年级地理生物会考考试试题及答案
- 2026年渝中区北碚区社区工作者招聘考试参考试题及答案解析
- 水利工程材料取样检测指南
- 守护网络安全护航青春成长-高二年级网络安全主题班会课件
- 雨课堂学堂在线学堂云《当代中国社会与文化:大湾区文化景观(暨南)》单元测试考核答案
- 银行外汇汇款课件
- 2025年福建农村信用社考试试题历年农信社笔试面试试题题库及答案
- 老年疼痛评估与综合管理方案
- 2025年10月自考00160审计学试题及答案含评分参考
- 2025年大学《土木水利与交通工程-土木水利与交通工程概论》考试参考题库及答案解析
- 肥胖患儿的饮食与营养
评论
0/150
提交评论