首页 > 代码库 > 形参和实参传递函数对比

形参和实参传递函数对比

#include <stdio.h>
#include <malloc.h>
#include "string.h"

struct student
{
    int age;
    char *name;//char name[10];
};
/* 指针传递,省去拷贝时间 */
void stuprint(student *pst)
{
    printf("形参地址%p\r\n",pst);
    printf("pst->age [%d]\r\n",pst->age);
    printf("pst->name[%s]\r\n",pst->name);
    pst->age=pst->age +1;
    printf("pst->age [%d]\r\n",pst->age);
    printf("pst->name[%s]\r\n",pst->name);
}
/* 数值传递 */
void stuprint1(student st)
{
    printf("形参地址%p\r\n",&st);
    printf("st.age [%d]\r\n",st.age);
    printf("st.name[%s]\r\n",st.name);
    st.age=st.age+1;
    printf("st.age [%d]\r\n",st.age);
    printf("st.name[%s]\r\n",st.name);
}
int main()
{
    student stu;
    stu.age=90;
    stu.name="kl";
    printf("实参地址%p\r\n",&stu);
    stuprint(&stu);
    printf("main stu.age[%d]\r\n",stu.age);
    return 0;

}

 

形参和实参传递函数对比