C语言参数传递的三种方式

tech2025-11-26  20

C语言中函数参数传递的三种方式

(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。 (2)传址,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。 (3)传引用,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。 说几点建议:如果传值的话,会生成新的对象,花费时间和空间,而在退出函数的时候,又会销毁该对象,花费时间和空间。 因而如果int,char等固有类型,而是你自己定义的类或结构等,都建议传指针或引用,因为他们不会创建新的对象。

例1:下面这段代码的输出结果为:

//引用交换 void swip(int &a, int &b) { int temp = a; a = b; b = temp; } //值传递 void swip1(int a, int b) { int temp = a; a = b; b = temp; cout << "swip1 a = " << a << "swip1 b = " << b << endl; } //地址传递值传递 void swip2(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int a = 10, b = 20; swip1(a, b); cout << "a = " << a << "b = " << b <<endl; system("pause"); return 0; }

解析: 该题考察函数传参问题。 1,指针传参 -> 将变量的地址直接传入函数,函数中可以对其值进行修改。 2,引用传参 -> 将变量的引用传入函数,效果和指针相同,同样函数中可以对其值进行修改。 3,值传参 -> 在传参过程中,首先将c的值复制给函数c变量,然后在函数中修改的即是函数的c变量,然后函数返回时,系统自动释放变量c。而对main函数的c没有影响。

转载:https://blog.csdn.net/weibo1230123/article/details/75541862

最新回复(0)