求解析
m 圈内达人 2015-11-15 16:35:36
2501 1 0
地址传递:原来的值变了 会改变实参的值
举个例子
#include<stdio.h>
void temp(int a,int b) 
{
int t;
t=a;
a=b;
b=t;
}
void main()
{
int a=5;int b=3;
temp(a,b);
printf("%d%d",a,b);
}
结果 a=5;b=3 并没有因为调用了函数,而变成a=3;b=5;原因就是它是函数值传递,而不是地址传递


问题来自: 形参和实参

共 1 个回答

    嘿嘿大人 一代宗师 3102天前
    #include<stdio.h>
    void temp(int a,int b) //自定义一个无返回值函数,并且定义形参a和b
    {
    int t;
    t=a;
    a=b;
    b=t;
    }//自定义函数的作用是交换两个形参的值void main()//不要加这个void,主函数没有这种写法,虽然不报错,但是这种写法是不被允许的;
    {
    int a=5;int b=3;//定义两个整形变量a和b,并且赋值
    temp(a,b);//调用函数temp,并且确定实参是a和b
    printf("%d%d",a,b);//输出变量a和b的值
    }

    由于形参是整形变量,所以是按值传递,形参在自定义函数中的所有操作都不会影响到实参的值;

    如果形参是指针或者数组的话那就是按地址传递,在自定义函数中对形参的操作就会影响到实参;

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题