正在加载图片...
举例 说明 【例】若在主函数中变量a=5,b=10,编写一个函数交换主函数中两 个变量的值,使变量a=10,b=5。(指针也可以作为函数的参数,它的 作用是将一个变量的地址传递到另一个函数中。) i void swap(int *x, int *y) a,b,*p, *q /*说明两个变量并赋初值* printf("交换前:a=%d,b=%dn",a,b) swap(p,q),/*用变量a和b作为实际参数调用函数* printf("交换后:a=%d,b=%dn",a,b) void swap( int *x, int *y) Int temp;/*借助临时变量交换两个形参变量ⅹ和y的值* 结合例子 temp=*X, 讲解地址 传递方式 temp 程序输出如下: 交换前:a=5b=10 交换后:a=10b=5 swap()函数中使用两个指针变量x和y作为形参。程序运行时,先 执行main()函数中的给a和b赋值语句,使a的值为5,b的值为10, 并将a和b的地址分别赋给p和q,见下图(a)。main()函数调用swap() 函数时,将实参的值传送给形参变量。虚实结合后,x和p指向的是同 存储单元,y和q指向的是同一存储单元,见下图(b)接着执行swap() 函数体,使*x和*y的值交换,也就是a和b的值的交换,见下图(c) 函数调用结束后,x和y被释放,情况如下图(d)。最后在man(函数 中输出的a和b的值是经过交换的值 运用指针变量作参数,可以在被调函数中改变主调函数中定义的变 量的值C 语言程序设计教案 举例 说明 【例】 若在主函数中变量 a=5,b=10,编写一个函数交换主函数中两 个变量的值,使变量 a=10,b=5。(指针也可以作为函数的参数,它的 作用是将一个变量的地址传递到另一个函数中。) #include<stdio.h> main ( ) { void swap(int *x, int *y); int a, b,*p,*q; a=5; b=10; /* 说明两个变量并赋初值 */ p=&a;q=&b; printf ("交换前:a=%d, b=%d\n", a, b); swap(p, q); /* 用变量 a 和 b 作为实际参数调用函数 */ printf ("交换后:a=%d, b=%d\n", a, b); } void swap ( int *x, int *y) { int temp; /* 借助临时变量交换两个形参变量 x 和 y 的值 */ temp = *x; *x =*y; *y = temp; } 程序输出如下: 交换前:a=5 b=10 交换后:a=10 b=5 swap( )函数中使用两个指针变量 x 和 y 作为形参。程序运行时,先 执行 main( )函数中的给 a 和 b 赋值语句,使 a 的值为 5,b 的值为 10, 并将 a 和 b 的地址分别赋给 p 和 q,见下图(a)。main( )函数调用 swap( ) 函数时,将实参的值传送给形参变量。虚实结合后,x 和 p 指向的是同 一存储单元,y 和 q 指向的是同一存储单元,见下图(b)。接着执行 swap( ) 函数体,使*x 和*y 的值交换,也就是 a 和 b 的值的交换,见下图(c)。 函数调用结束后,x 和 y 被释放,情况如下图(d)。最后在 main( )函数 中输出的 a 和 b 的值是经过交换的值。 &a &b 5 10 a b (a) &a &b 5 10 a b (b) x y &a &b &a &b 10 5 a b (c) x y &a &b &a &b 10 5 a b (d) p q p q q p q p 运用指针变量作参数,可以在被调函数中改变主调函数中定义的变 量的值。 结合例子 讲解地址 传递方式
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有