C程序设计09-用指针变量访问变量.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计09-用指针变量访问变量

* * 例:用直接寻址和间接寻址两种方法给变量各赋值一次,并检验结果 int a=1,*p=NULL; p=a; a=2; //直接寻址 printf(“%d\n”, *p); *p=3; //间接寻址 printf(“%d\n”, a); 程序运行结果是: 2 3 9.2.3 通过指针变量访问变量 程序中3处*p中的“*”含义不同,第一个*是类型说明符号,其余是间接访问运算符 直接访问更直观、更高效 * * 例:输入两个整数, 按大小顺序输出 不允许改变a,b的值,只允许再定义指针变量 只允许调用一次printf() 函数 int main() { int a,b,*p1,*p2,*p; scanf(“%d,%d”,a,b); p1=a; p2=b; if(ab) { p=p1; p1=p2; p2=p; } printf(“%d,%d\n”, *p1,*p2); return 0; } * * 例:输入两个整数, 按大小顺序输出 不允许改变a,b的值,只允许再定义指针变量 只允许调用一次printf() 函数 int main() { int a,b,*p1,*p2,*p; scanf(“%d,%d”,a,b); p1=a; p2=b; if(ab) { p=p1; p1=p2; p2=p; } printf(“%d,%d\n”, *p1,*p2); return 0; } p1 p2 p a b 2000 2004 2000 2004 2 3 2004 2000 p定义成整型 变量,可否? 第三节 指针变量作函数参数 * * 本节主要内容 指针变量作参数的原因:访问变量可以用直接寻址,也可以用间接寻址,前者快,后者慢,但有些场合不允许用直接寻址,只能用间接寻址 目的:在被调函数中改变主调函数中的数据 方法:指针变量作被调函数的形参 * * 例:主函数中有一个变量a,请在被调函数中存入一个整数100(注意:不是主函数去存) 程序框架: int main() { void f(…); //函数声明 int a=1; f(…); //调用函数 printf(“%d\n”,a); return 0; } void f(…) { …… …… …… …… } 第三节 指针变量作函数参数 * * 例:主函数中有一个变量a,请在被调函数中存入一个整数100(注意:不是主函数去存) 方法1: int main() { void f(int); int a=1; f(); //调用函数 printf(“%d\n”,a); return 0; } 第三节 指针变量作函数参数 void f( ) { a=100; } * * 例:主函数中有一个变量a,请在被调函数中存入一个整数100(注意:不是主函数去存) 方法2: int main() { void f(int); int a=1; f(a); //调用函数 printf(“%d\n”,a); return 0; } 第三节 指针变量作函数参数 void f(int a) { a=100; } 运行结果:1 * * 例:主函数中有一个变量a,请在被调函数中存入一个整数100(不是主函数存的) 正确答案: int main() { void f( int*); int a=1; f(a); printf(“%d\n”,a); return 0; } 结论:要想改变a,则必须传a的地址 第三节 指针变量作函数参数 void f(int *p) { *p=100; } * * 程序说明 要让被调函数改变主调函数中变量的值,被调函数必须得到变量的地址,所以,实参应该是变量的地址,形参应该是指针变量 其实,实参a是一个指针,它

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档