武汉大学C语言.ppt

  1. 1、本文档共629页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例8.2 #include stdio.h void main( ) { int x1, x2, *p1, *p2= x2 ; scanf( “%d%d”, x1, p2 ); //p2是变量x2的地址,可替换x2。 p1 = x1; printf(“*p1=%d,*p2=%d\n”, *p1, *p2 ); p2 = p1 ; printf(“*p1=%d,*p2=%d”, *p1, *p2 ); } 运行结果: 5 4 ↙ *p1=5,*p2=4 5 x1 2000 p1 2000 p2 2000 *p1=5,*p2=5 8.2.4 指针变量作为函数参数 特点: 将一个变量的地址作为实参传送到被调用函数中。 采用“单向值传递”方式(特殊的地址值) 被调用函数不能改变实参指针变量的值, 但可以改变实参指针变量所向指变量的值。 可以得到多个返回值 例8.8 交换两个元素之值 swap( int *x, int *y ) { int t; t=*x; *x=*y; *y=t; } //交换形参指针变量所指向变量的值 void main( ) { int a=10, b=20; printf(“1)a=%d, b=%d\n”, a, b ); swap(a, b); //实参为变量的地址(指针), 地址值传递 printf(“2)a=%d, b=%d\n”,a,b); } 输出结果: 1)a=10, b=20 2)a=20, b=10 a b 10 20 a x y b t *y==b *x==a 10 10 20 20 1. 主函数: 定义变量a、b,并初始化。 2.主函数: 调用swap( ), 将实参的值( 地址 )传递给形参, 使得形参 x,y分别指向a,b。 3.swap( )函数: 交换形参*x、*y的值。即a,b的值。 10 10 //形参为同类型的指针变量 例8.8_2交换形参指针变量的值 swap( int *x, int *y ) { int *t ; t=x; x=y; y=t; } //交换形参指针变量的值 void main( ) { int a=10, b=20; int *p1=a, *p2=b; printf(“1) a=%d, b=%d\n”, *p1, *p2); swap( p1, p2 ); //实参为指针变量 printf(“2) a=%d, b=%d\n”, *p1, *p2); } 输出结果: 1)a=10, b=20 2)a=10, b=20 a b 10 20 p1 p2 a b y x a b a b a t //形参为同类型的指针变量 例8.8_3交换两个元素的值 swap( int *x, int *y ) { int *p; *p=*x; //此语句有问题 *x=*y; *y=*p; } void main( ) { int a = 10, b = 20; swap( a, b); printf(“a=%d, b=%d\n”, a, b); } 例: 写出下列程序的运行结果 #include stdio.h func1( int x, int y, int *a, int *b) { *a=x+y; *b=x-y; } void main( ) { int i=9, j=3, n1, n2; func1( i, j, n1, n2); printf(“n1=%d n2=%d\n”, n1, n2); } 输出结果: n1=12 n2=6 8.3 指针与数组 8.3.1 指针变量的运算 8.3.2 一维数组的指针 8.3.3 数组名作为函数参数 8.3.1 指针变量的运算 实质: 地址的运算 指针可以进行以下运算: 赋值运算: 给指针变量赋值 算术运算: 指针加(减)一个整数 两个指针相减 关系运算: 两个指针之间的比较运算 例: #include stdio.h int a, b; //定义外部变量 extern int max( ); void main( ) {scanf(“%d%d”, a, b); printf(“%d”, max( )); } extern int a, b; //声明外部变量 int max( ) { return (ab?a

您可能关注的文档

文档评论(0)

浪漫唯美-文档菜鸟 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档