值传递
值传递是最常见的函数参数传递方式,也是C语言默认的函数参数传递方式。在函数调用时,系统会将函数的实参的值复制给函数的形参,在函数内部对形参的修改不会影响实参的值。例如:
在这个程序中,函数swap的两个参数a和b都是值传递的,在函数内部对a和b的修改不会影响主函数中x和y的值。所以最后输出x=1,y=2。
引用传递
引用传递是C++语言中特有的函数参数传递方式,在C语言中也可以使用。在函数调用时,系统会将函数的实参的地址复制给函数的形参,在函数内部对形参的修改会影响实参的值。例如:
在这个程序中,函数swap的两个参数a和b都是引用传递的,在函数内部对a和b的修改会影响主函数中x和y的值。所以最后输出x=2,y=1。
指针传递
指针传递是C语言中常用的函数参数传递方式。在函数调用时,系统会将函数的实参的地址复制给函数的形参,在函数内部对形参的修改会影响实参的值。例如:
在这个程序中,函数swap的两个参数a和b都是指针传递的,在函数内部对a和b的修改会影响主函数中x和y的值。所以最后输出x=2,y=1。
在使用指针传递时,需要注意传递的是指针的地址,所以函数的形参也应该是指针类型。例如,在上面的程序中,函数swap的形参a和b都是int类型的指针,在函数内部对a和b的修改就相当于修改它们所指向的内存地址的值。
值传递、引用传递和指针传递是C语言中函数参数传递方式的三种常用方式,它们的区别在于传递的是值、地址还是地址的指针。在使用时,应根据实际情况选择合适的函数参数传递方式。