《函数参数传递》由会员分享,可在线阅读,更多相关《函数参数传递(7页珍藏版)》请在金锄头文库上搜索。
1、#include void swap( int x , int y ) int t ; t = x ; x = y ; y = t ; void main() int a = 3 , b = 5 ; swap( a , b ) ; printf(a = %d , b = %d n , a , b ); 5 a 2010 b 2B12 x 3100 y 3F02 3 5 3 5 3 3 t 4D24 形参传递方式 - 值传递 #include void swap( int x , int y ) int t ; t = x ; x = y ; y = t ; void main() int a
2、= 3 , b = 5 ; swap( a , b ) ; printf(a = %d , b = %d n , a , b ); 5 a 2010 b 2B12 3 不能实现两个数的交换 形参传递方式 - 值传递 #include void swap( int *x , int *y ) int t ; t = *y ; *y = *x ; *x = t ; void main() int a = 3 , b = 5 ; swap( &a , &b ) ; printf(a = %d , b = %d n , a , b ); 5 a 2010 b 2B12 x 3100 y 3F02 20
3、10 2B12 3 3 3 5 t 4A10 5 能实现两个数的交换 c语言中实参变量和形参变量之间的数据传递是单向的 “ 值传递 ” 方式。指针变量作函数参数也要遵循这一规则。调用函数不可能改变实参指针变量的值,但是 可以改变实参指针变量所指变量的值 。 形参传递方式 -地址 传递 #include void swap( int *x , int *y ) int t ; t = *y ; *y = *x ; *x = t ; void main() int a = 3 , b = 5 ; swap( &a , &b ) ; printf(a = %d , b = %d n , a , b
4、); 5 a 2010 b 2B12 3 3 3 5 #include void swap( int *x , int *y ) int *t ; t = x ; x = y ; y = t ; void main() int a = 3 , b = 5 ; swap( &a , &b ) ; printf(a = %d , b = %d n , a , b ); 5 a 2010 b 2B12 x 3100 y 3F02 2010 2B12 3 2B12 2010 t 4C00 2010 #include void swap( int *x , int *y ) int *t ; t = x
5、 ; x = y ; y = t ; void main() int a = 3 , b = 5 ; swap( &a , &b ) ; printf(a = %d , b = %d n , a , b ); 5 a 2010 b 2B12 3 不能实现两个数的交换 ,在被调函数中要 有修改指针指向空间修改的语句; 例如: t = *x ; *x = *y ; *y = t; #include void swap( int &x , int &y ) int t ; t = x ; x = y ; y = t ; void main() int a = 3 , b = 5 ; swap( a , b ) ; printf(a = %d , b = %d n , a , b ); 5 a 2010 b 2B12 3 x y t 4C00 3 3 5 3 3 形参传递方式 -引用 传递