- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序指针1颜色
C程序设计讲义
指针1
教学目的:
掌握的定义
理论
教学条件:
多媒体
教学内容:
复习:函数的定义及如何使用函数?
新课:
指 针
1.相关概念
1.1 变量的地址
如果在程序中定义了一个变量,编译时,就给这个变量分配内存单元。系统根据程序定义的变量类型,分配一定长度的空间。
画图分析
1.2 数据的访问方式
直接访问:
间接访问:
1.3 指针和指针变量
一个变量的地址称为该变量的指针。如果有一个变量专门用来存放另一变量的指针,则称其为指针变量。
2.指针变量的定义和使用
2.1 指针变量的定义
C语言规定,所有变量在使用前必须定义,指定其类型,并按此分配内存单元。指针变量不同于其他变量,专门用来存放地址的。
int i,j;
int *pointer_1,*pointer_2;
定义指针变量的一般形式:基类型 *指针变量名
float *pointer3;
float *pointer4;
注意:
指针变量前面加“*”,表示该变量的类型为指针类型变量。
在定义指针变量时必须指定基类型。
2.2指针变量的初始化和赋值
1.通过求地址运算符()获得地址值
例如:
定义”int k=1,*q”;
scanf(“%d”,a);
2.通过指针变量获得地址值
通过赋值运算,把一个指针变量的值赋给另一个指针变量,使这两个指针指向同一地址。
例如:int k,*p=k,*q;
语句q=p;使指针变量q中也存放变量k的地址,即变量p和变量q都指向k
3.通过调用库函数获得地址值
malloc()和calloc()
4.给指针变量赋空值
可以给指针赋NULL
2.3 指针变量的引用
取地址运算符
*指针运算符
和*两个运算符的优先级别相同,按自右至左的方向结合。
例题9-1:通过指针变量访问整型变量。
main()
{
int a,b;
int *p1,*p2;
a=100;
b=10;
p1=a;p2=b;
printf(%d,%d\n,a,b);
printf(%d,%d\n,*p1,*p2);
}
例题9-2:输入a和b两个整数,按照从大到小的顺序输出。
main()
{
int *p1,*p2,*p,a,b;
scanf(%d,%d,a,b);
p1=a;p2=b;
if(ab);
{
p=p1;
p1=p2;
p2=p;
}
printf(\na=%d,b=%d\n\n,a,b);
printf(max=%d,min=%d\n,*p1,*p2);
}
2.4指针的运算
1.在指针值上加减一个整数
指向数组或字符串的指针变量,可以加上或减去一个整数n,表示把指针指向的当前位置(指向某数组元素)向前或向后移动n个位置。
2.指针变量的减法运算
3.指针变量的关系运算
4.指针变量做函数参数
例题9-3:判断程序能否交换主函数中a和b的值
main()
{
int a=1,b=2;
printf(1:a=%d,b=%d\n,a,b);
swap(a,b);
printf(3:a=%d,b=%d\n,a,b);
}
swap(int *p,int *q)
{
int c;
c=*p;
*p=*q;
*q=c;
printf(2:%d,%d\n,*p,*q);
}
例题9-4 对输入的两个整数,按大小顺序输出。
swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf(%d,%d,a,b);
pointer_1=a;
pointer_2=b;
if(ab)
swap(pointer_1,pointer_2);
printf(\n%d,%d\n,a,b);
}
例题9-5 输入a,b,c3个整数,按大小顺序输出。
swap(int *pt1,int *pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
change(int *q1,int *q2,int *q3)
{
if(*q1*q2) swap(q1,q2);
if(*q1*q3) swap(q1,q3);
if(*q2*q3) swap(q2,q3);
}
main()
{
int a,b,c,*p1,*p2,*p3;
scanf(%d,%d,%d,a,b,c);
p1=a;p2=b;p3=c;
change(p1,p2,p3);
printf(\n%d,%d,%d\n,a,b,c);
}
课后总结:
掌握的定义 课程 C程序设计 教师 邓绯 班
您可能关注的文档
最近下载
- 冻货类物资采购项目135.docx VIP
- JJF 1815-2020 Ⅱ级生物安全柜校准规范.pdf VIP
- 颞下窝手术入路解析课件.ppt VIP
- 飞行营地项目可行性研究报告.docx
- ABB IRB 6700机器人产品手册 中文.pdf VIP
- 2025年高考数学二轮复习专题02 一元二次函数、方程和不等式(基本不等式+恒(能)成立问题)(7大考点)(原卷版).docx VIP
- 总会计师竞聘演讲稿PPT.pptx VIP
- 征信电子版PDF个人信用报告简版2024年12月最新版可编辑带水印模板.pdf VIP
- 2025年酿酒师、品酒师从业资格证考试题库.pdf VIP
- 2024-2025学年北京西城区六年级(上)期末语文试卷(含答案).pdf
文档评论(0)