#include<stdio.h>
#include<string.h>
struct Student{
int sid;
int age;
char name[200];
}; //分号不能省
void f(struct Student *pst);
void g(struct Student ss);
void g2(struct Student * st);
int main(void){
struct Student st; //已经为st分配好了内存
f(&st); //第一种打印方式,先f函数赋值,后main函数打印
printf("%d %s %d\n",st.sid,st.name,st.age);
//g(st);
//第二种打印方式,g函数拷贝
g2(&st);
//第三种打印方式,传地址打印
return 0;
}
void f(struct Student *pst)
{
(*pst).sid = 99;
strcpy(pst->name,"zhangsan");
pst->age=22;
}
void g(struct Student ss)
//耗内存,耗时间,不推荐
{
printf("%d %s %d\n",ss.sid,ss.name,ss.age);
}
void g2(struct Student *pst)
{
printf("%d %s %d\n",(*pst).sid,pst->name,pst->age);
//pst->sid等价于(*pst).sid,所以pst->sid等价于st.sid
}
08-17
3458