C语言中函数参数传递

Posted on 2016-02-29 16:22  morxio  阅读(161)  评论(0编辑  收藏  举报

在K&R的C语言书中,已经给了很经典的swap例子,我在这再举一个更简单的例子。

#include <stdio.h>

int myvar;

void def_var_value( int*);


void def_myvar_value( int *myvaradress)
{
     *valueadress = 3;
}


int main(int argc, char *argv[])
{
    myvar = 0;
    def_var_value(&myvar );
    fprintf(stdout, "myvar = %3d\n", myvar);

    return 0;
}

上例中,main函数初始化整型变量myvar的值为0,而通过将myvar的地址传入子例程def_myvar_value,将myvar的值修改为3,再打印出来。

值得注意的是对子例程的声明中,形参用的是指向myvar地址的指针,而主调函数的实参是取myvar的内存地址。