#include <stdio.h>
typedef struct
{
unsigned char number;
float socre;
}st_student;
void set_nuber(st_student student,unsigned char number)
{
student.number = number;
}
void p_set_nuber(st_student *student,unsigned char number)
{
student->number = number;
}
st_student r_set_number(unsigned char number)
{
st_student student;
student.number = number;
return student;
}
int main()
{
st_student zhangsan;
zhangsan.socre = 99.5;
//set_nuber(zhangsan,10); //num不变
//p_set_nuber(&zhangsan,10);//num赋值
//zhangsan = r_set_number(10);//num赋值,其余值清除
printf("num of zhangsan is %d\n",zhangsan.number);
printf("socre of zhangsan is %f\n",zhangsan.socre);
return 0;
}
结构体变量:访问成员变量用“.”;占用栈大小为结构体变量的大小,操作对象为栈中开辟的临时变量;
结构体指针变量:访问成员变量用“->”;占用栈大小为指针变量的大小,操作对象为指针指向的内存地址;
函数参数为结构体变量,将会在栈中开辟一个和结构体结构相同,大小相等的临时变量;
函数返回值为结构体变量,将会返回一个一个和结构体结构相同,大小相等的变量;