- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chap 8 指针 ;本章要点;8.1 密码开锁 ;8.1 寻找密码的途径分析;8.1 密码存放示意图;例8-1 利用指针模拟密码开锁游戏;8.1.2 地址和指针-指针的概念;指针;指针变量所指向的变量的类型;指针变量的定义;8.1.4 指针的基本运算 ;# include stdio.h
int main (void)
{ int a = 3, *p;
p = a;
printf (“a=%d, *p=%d\n”, a, *p);
*p = 10;
printf(a=%d, *p=%d\n, a, *p);
printf(Enter a: );
scanf(%d, a);
printf(a=%d, *p=%d\n, a, *p);
(*p)++;
printf(a=%d, *p=%d\n, a, *p);
? return 0;
} ;a;2、赋值运算;1) 指针变量在定义后也要先赋值再引用
2) 在定义指针变量时,可以同时对它赋初值
int a;
int *p1 = a;
int *p2 = p1;
3) 不能用数值作为指针变量的初值,但可以将一 个指针变量初始化为一个空指针
int *p=1000;
p = 0;
p = NULL;
p = (int*)1732; ;8.2 角色互换;例8-3 指针作为函数参数模拟角色互换;例8-3 swap1();例8-3 swap2();例8-3 swap3();8.2.2 指针作为函数参数;例8-3 swap1();例8-3 swap2();例8-3 swap3();指针作为函数参数的应用;通过指针实现函数调用返回多个值 ;例8-4;8.3 冒泡排序-程序解析 ;8.3.2 数组和地址间的关系;指针和数组的关系;用指针完成对数组的操作;# include stdio.h
int main (void)
{ double a[2], *p, *q;
p = a[0];
q = p + 1;
printf (%d\n, q - p);
printf (%d\n, (int) q - (int) p);
return 0;
};double *p, *q;
q - p
两个相同类型的指针相减,表示它们之间相隔的存储单元的数目
p + 1 / p-1
指向下一个存储单元 / 指向上一个存储单元
其他操作都是非法的
指针相加、相乘和相除,或指针加上和减去一个浮点数
p q
两个相同类型指针可以用关系运算符比较大小;int main(void)
{ int i, a[10], *p;
long sum = 0;
printf(Enter 10 integers: );
? for(i = 0; i 10; i++)
scanf(%d, a[i]);
for ( i = 0; i 10; i++)
sum = sum + a[i];
printf(calculated by array, sum=%ld \n, sum);
sum=0;
for(p = a; p = a+9; p++)
sum = sum + *p;
printf(calculated by pointer, sum=%ld \n, sum);
return 0;
} ;数组元素作为函数实参时,函数形参为变量
与变量作为函数实参相同,值传递;数组名是指针常量,相当于指针作为函数的参数
数组名做为实参,形参是指针变量(数组);int sum (int *a, int n)
{ int i, s = 0;
for(i=0; in; i++)
s += a[i];
return(s);
} ;例8-8二分查找;int Bsearch(int *p, int n, int x) /* 二分查找函数 */
{ int low, high, mid;
low = 0; high = n - 1; /* 开始时查找区间为整个数组 */
while (low = high) { /* 循环条件 */
mid = (low + high) / 2; /* 中间位置
您可能关注的文档
最近下载
- 冻货类物资采购项目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)