在C语言中,函数的参数传递方式有两种传值调用和传址调用。
1. 传值调用
传值调用即将实参的值复制一份传给形参,函数内部对形参的修改不会影响到实参的值。
swap(
输出结果为“x = 1, y = 2”,因为swap函数内部修改的是a和b的值,而不是x和y的值。
2. 传址调用
传址调用即将实参的地址传给形参,函数内部对形参的修改会影响到实参的值。
swap(& &
输出结果为“x = 2, y = 1”,因为swap函数内部修改的是a和b的值,即x和y的值。
需要注意的是,传址调用会带来一定的额外开销,因为需要将实参的地址传给形参。但是在需要修改实参的值时,传址调用是必须的。
另外,C语言还支持指针传递,即将指向实参的指针传给形参。这种方式和传址调用类似,但是语法更加简洁。
swap(& &
输出结果为“x = 2, y = 1”,与传址调用的结果相同。
C语言中的参数传递方式有传值调用、传址调用和指针传递。传值调用复制实参的值传给形参,对形参的修改不会影响到实参的值;传址调用将实参的地址传给形参,对形参的修改会影响到实参的值;指针传递将指向实参的指针传给形参,语法更加简洁。在需要修改实参的值时,应该使用传址调用或指针传递。