C语言程序设计善于利用指针.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*/56 8.4 指针变量作函数参数 2. 数组的指针作函数参数 【例8.20】字符串复制函数。 void copystr(char *t, char *s) /* 字符指针变量t和s作形参 */ { while ((*t++=*s++)!=\0); } void main( ) { char c[80],*p=I am a student.; copystr(c,p); /* 数组名c和字符指针变量p作实参 */ printf(%s\n,c); } */56 作业 P291(要求用指针完成) 1 3 4 17 18 * * * * * 第8章 善于利用指针 C 语言程序设计 北京航空航天大学 交通科学与工程学院 徐国艳 */56 指针的概念 指针和指针变量 指针与数组 指针做函数参数 8.1 8.2 8.3 8.4 章节 内容 */56 访问内存的两种方式: 直接访问:按地址直接存取 a 间接访问:通过指针i间接存取 8.1指针的概念 什么是指针? 如何使用指针? 1000 1008 1004 1023 10 a b c 3.5 5 1000 i 对于int a=10,c=5; float b=3.5; 内存分配 例 a的地址 a的内容 指针 a的地址 a是整型变量,存放内容 i是指针变量,存放地址 */56 用指针i访问: 用i++可以指向字符串中的每个地址! 8.1指针的概念 1000 i char c[]=“GOOD!”; 例 G c[0] O O 内存分配 D ! \0 c[1] c[2] c[5] 1000 1002 1001 1023 为什么要使用指针? */56 8.2 指针和指针变量 一、指针、指针变量与指向 例:int a=10,*i,x; float b=3.5,*p1; char c,*p2=c; i=a;p1=b; x=*i; 10 i *i a 1000 指针=地址 指针变量:存放地址的变量 指针变量是一种新的数据类型 1000是a 的指针 i是指针变量 *i=a 二、指针变量的定义与赋值 数据类型 *指针变量名 1000 *i是i指向的变量a 指针运算 *i *i 定义指针变量 指针初始化 指针赋值 */56 三、指针变量的赋值与操作 *--指针运算符 --取地址运算符 同级,右结合 指针变量的赋值 int a=3,*p,*p1,*p2,*p3,p4; p=a; /*取a地址运算*/ p1=p; /*直接赋值*/ p2=NULL;/*赋空值,不指向任何变量*/ p3=0; 指针变量的操作 int a=3,*p,*p1,k; p=a; /*a地址?P*/ k=*P; /*3?k*/ *p=20;/*20?a*/ *a=30;/*先取a的地址,再按地址赋值30?a*/ p1=*p; /* 因为*p=a,操作结果使p1指向a*/ */56 四、指针的引用 例8.1:指针的赋值与输出 void main() {int a=10,b,c,*p; p=a;b=*p;c=a; printf(%d,%d,%d\n,a,b,c); printf(%d,%d,%d\n,*p,p,a); } 输出结果: 10,10,10 10,1739919326,1739919326 printf(“%d,%d\n, *a, *p); 第三行输出结果: 10,1739919326 指针赋值 指针运算 指针输出 */56 方法1:目标变量值不变,改变指针变量的 指向求解。 void main( ) { int a,b,*p1,*p2,*p; p1=a;p2=b; scanf(″%d%d″,p1,p2); if(*p1*p2) { p=p1; p1=p2; p2=p;} printf(″a=%d,b=%d\n″,a,b); printf(″max=%d,min=%d\n″,*p1,*p2); } a b p1 p2 p 6 8 a=6,b=8 max=8,min=6 8.2 指针和指针变量 【例8.2】输入a、b两个整数, 使用指针变量按大小顺序输出 这两个整数。 */56 方法2:利用指针变量直接改变目标变量的值 求解。 void main() { int a,b,t,*p1,*p2; p1=a;p2=b; scanf(″%d%d″,p1,p2); if(*p1*p2) { t=*p1

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档