以下是按值调用和按引用调用之间的区别:
按值调用 | 按引用调用 | |
---|---|---|
说明 | 当值的副本传递给函数时,原始值不会被修改。 | 当将值的副本传递给函数时,会修改原始值。 |
内存位置 | 实际参数和形式参数在不同的内存位置创建。 | 实际参数和形式参数在同一内存位置创建。 |
安全性 | 在这种情况下,实际参数仍然是安全的,因为它们不能被修改。 | 在这种情况下,实际参数不可靠,因为它们已被修改。 |
参数 | 实际参数的副本被传递给形式参数。 | 实际参数的地址被传递给它们各自的形式参数。 |
按值调用的示例:
#include <stdio.h>
void change(int,int);
int main()
{
int a=10,b=20;
change(a,b); //calling a function by passing the values of variables.
printf("Value of a is: %d",a);
printf("\n");
printf("Value of b is: %d",b);
return 0;
}
void change(int x,int y)
{
x=13;
y=17;
}
输出结果如下 -
Value of a is: 10
Value of b is: 20
引用调用示例:
#include <stdio.h>
void change(int*,int*);
int main()
{
int a=10,b=20;
change(&a,&b); // calling a function by passing references of variables.
printf("Value of a is: %d",a);
printf("\n");
printf("Value of b is: %d",b);
return 0;
}
void change(int *x,int *y)
{
*x=13;
*y=17;
}
输出结果如下 -
Value of a is: 13
Value of b is: 17
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。