- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
谭浩强经典C语言学习课件09 指针PPT课件
第九章 指针;9.1 地址和指针的概念
变量与地址;直接访问与间接访问
直接访问:按变量地址存取变量值
间接访问:通过存放变量地址的变量去访问变量;i;;指针变量;与*运算符
含义;例9.1 通过指针变量访问整型变量;说明:
程序中两处出现的*p1,*p2的区别
地址赋值语句p1=a;不能写成*p1=a
若以执行语句p1=a,*p1含义是什么?
p1?*a?P2=*p1?p2=p1?
*a的含义是什么?*P1?
(*p1)++的含义是什么
*(p1++)的含义是什么
;例9.2 输入两个数,并使其从大到小输出;指针变量作为函数参数——地址传递
作用:将一个变量的地址传送到另一个函数中;指针变量作为函数参数——地址传递;swap(int *p1, int *p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
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);
};swap(int *p1, int *p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
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);
};swap(int *p1, int *p2)
{ int *p;
*p=*p1;
*p1=*p2;
*p2=*p;
}
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);
};swap(int x,int y)
{ int t;
t=x; x=y; y=t;
}
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);
};运行结果:5,9;说明:
如想通过函数调用得到n个要改变的值
在主调函数中设n个变量,用n个指针变量指向它们
用指针变量作实参,将n个变量的地址传给索调用的函数的形参
通过形参指针变量,改变该n个变量的值
主调函数中可以使用这些改变了值的变量
注意:不能企图通过改变指针形参的值而使指针实参的值改变;swap(int *pt1, int *pt2)
{ int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
exchange(int *q1,int *q2,int *q3)
{ if(*q1*q2) swap(q1,q2);
if(*q1*q3) swap(q1,q3);
if(*q2*q3) swap(q2,q3);
};9.3 数组的指针与指向数组的指针变量
指向数组元素的指针变量;通过指针引用数组元素
C规定:若P为指向数组元素的指针变量,则P+1指向同一数组的下一个元素
P+1? P+1*d (d为p指向的变量所占字节数);数组元素表示方法;例9.5 输出数组中的全部元素;注意:
1、指针变量可以实现使本身的值改变。如p++
而a++能否实现呢?
2、要注意指针变量的当前值;3、要注意指针变量的运算
①P++,使P指向下一元素
②*P++等价于*(P++)
③*(P++)与*(++P)的作用不同
④(*P)++的含义
⑤如果P当前指向数组a中的第i个元素,则:
*(P--)相当于a[i--]
*(++P)相当于a[++i]
*(
您可能关注的文档
最近下载
- 2024-2025学年上学期长沙小学语文六年级期末模拟试卷.doc
- 2025年野生动物园行业调研分析报告.docx VIP
- 中国危重症患者肠内营养支持常见并发症预防管理专家共识解读课件.pptx
- 2024年中考数学复习 圆中的重要模型-圆中的翻折模型(原卷+答案解析).pdf VIP
- 小学语文新课标六年级《为人民服务》朱丽芳(1).pdf
- 专家答疑纪要—第1期:电力建设工程(建筑专业).doc
- 创建绿色施工环境保护台帐.doc VIP
- DB32_T2334.2—2013《水利工程施工质量检验与评定规范》第2部分:建筑工程.doc
- 2025届高考作文素材:人工智能与Deepseek+课件.pptx VIP
- 剑桥(join in)版小学英语五年级下册单元知识梳理总结(全册).pdf VIP
文档评论(0)