- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
谭浩强版语言第十章
第十章 指针 10.1 指针与地址 10.2 指针与变量 10.3 指针与数组 10.4 指针与字符串 10.5 指针与函数 10.6 指针数组和指向指针的指针 10.1 指针与地址 1. 地址:内存区的每一个字节的编号。 若有:int a, b; char c; a=3; b=7; c=‘A’; 2. 两种访问方式 ①直接访问:通过变量名 如:scanf(“%d”, a); printf(“%d”, a); ②间接访问:通过一个中间变量 把变量a的地址存放在另一个变量p中,通过变量p来间接访问变量a。 3. 指针:地址的形象化称谓,用来表示指向关系。 4. 指针变量:存放地址值的变量,如p。 10.2 指针与变量 10.2.1 指针变量的定义 形式:基类型 *指针变量名 基类型:表示指针变量可存放哪一类型变量的地址。 *:表示该变量为一指针变量。 如:int *p ; 表示定义了一个指针变量p,p只能指向int型的变量,即p只能存放一个int型变量的地址值。 10.2.2 指针变量的引用 先定义后使用,使指针变量有一确定的指向(赋初值)。 1. 两个相关的运算符 (1):取地址运算符 (2)* :指针运算符,取指向。 例:int a, *p ; //此时的*并非指针运算符 p=a ; //指针变量p指向a *p=3 ; //*p表示p所指向的量,即a 2. 注意: (1)指针变量只能存放地址,不能存放其他非地址类型的数据。 如:int a, *p; p=a ; /*对*/ p=a ; /*错*/ (2)指针变量只能存放同一类型变量的地址。 如:int a, *p; char c; p=a ; /*对*/ p=c ; /*错*/ 3. 直接访问和间接访问 若有定义:int a, *p; p=a; (1)直接访问 scanf(“%d”, a); printf(“%d”, a); (2)间接访问 scanf(“%d”, p); printf(“%d”, *p); 形式: scanf(“%d”, 指针变量名); printf(“%d”, *指针变量名); 例10.1 通过指针变量访问整型变量 main( ) {int a=10, b=20; int *p, *q; p=a; q=b; printf(“%d, %d\n”, a, b); printf(“%d, %d\n”, *p, *q); } 结果:10,20 10,20 例10.2 利用指针变量交换a和b的值。 ①交换整型变量的值 main( ) {int a=5, b=8; int *p, *q, t; p=a; q=b; t=*p; *p=*q; *q=t; printf(“%d,%d\n”, a, b); printf(“%d,%d\n”,*p, *q); } 结果:8,5 8,5 ②交换指针变量的值(地址) main( ) {int a=5, b=8; int *p, *q, *t; p=a; q=b; t=p; p=q; q=t; printf(“%d,%d\n”, a, b); printf(“%d,%d\n”,*p, *q); } 结果:5,8 8,5 4. 进一步说明两个运算符 优先级:相同 结合性:右结合性 若有 int a, *p; p=a; 则:*p = a = p *a = *p = a ++与* :优先级相同,右结合性 若有 int a, *p; p=a; 则:*p++ = *(p++) :地址值加一 (*p)++ = a++ :变量值加一 10.2.3 指针变量作为函数参数 例10.3 交换a和b的值 ①交换整型变量的值 void swap(int *p, int *q) {int t; t=*p; *p=*q; *q=t; } main( ) {int a=5, b=8; int *p1=a, *q1=b; swap( p1, q1 );
您可能关注的文档
最近下载
- 《2023年甘肃省职业院校技能大赛职业英语技能赛项职业英语能力测试模块试题口语决赛样题》.pdf
- 建筑工程建筑面积计算规范GBT50353-2022[13].pdf
- JB/T 9628-1999 汽轮机叶片 磁粉探伤方法.pdf
- 0i-TF PLUS车床操作说明书.pdf
- 陈传明管理学笔记1.马工程——总论.pdf
- 06J925-2 压型钢板、夹芯板屋面及墙体建筑构造(二).docx VIP
- 《高速公路基础设施数字化建设数据标准》.pdf VIP
- 计算机组装与维护 知识点整理.pdf VIP
- 《员工满意度研究国内外文献综述》3900字.docx VIP
- 勤俭节约主题班会 主题班会.ppt VIP
文档评论(0)