微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C语言中按值调用和按引用调用有什么区别?

以下是按值调用和按引用调用之间的区别:

按值调用 按引用调用
说明 当值的副本传递给函数时,原始值不会被修改。 当将值的副本传递给函数时,会修改原始值。
内存位置 实际参数和形式参数在不同的内存位置创建。 实际参数和形式参数在同一内存位置创建。
安全性 在这种情况下,实际参数仍然是安全的,因为它们不能被修改。 在这种情况下,实际参数不可靠,因为它们已被修改。
参数 实际参数的副本被传递给形式参数。 实际参数的地址被传递给它们各自的形式参数。

按值调用的示例:

#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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐