#include <stdio.h>//struct Stu//{//int a;//char c;//char arr[20];//double d;//};//struct D//{//char ch[10];//struct Stu s;//char* pc;//};//int main()//{//char arr[10] = "hello";//struct D d = { "tian",{21,'a',"15582151648",3.14},arr };//printf("%s\n", d.ch);//prhttps://www.3tt.net/?mod=artinfo&aid=656intf("%d\n", d.s.a);//printf("%c\n", d.s.c);//printf("%s\n", d.s.arr);//printf("%lf\n", d.s.d);//printf("%s\n", d.pc);//printf("%p\n", d.pc);//}
#include <stdio.h>typedef struct Stu{int age;char tele[20];char name[20];char sex[5];};void print(Stu tmp){printf("age:%d\n", tmp.age);printf("tele:%s\n", tmp.tele);printf("name:%s\n", tmp.name);printf("sex:%s\n", tmp.sex);}void print1(Stu* ps){printf("%d\n", ps->age);printf("%s\n", ps->tele);printf("%s\n", ps->name);printf("%s\n", ps->sex);}int main(){Stu s = { 21,"15582151648","雄","男" };print(s);print1(&s);return 0;}
结构体传参,要传结构体的地址,函数传参是需要压栈的,如果传结构体,结构体过大,系统开销大。
结构体传参传地址,可以用p->成员变量打印出相关信息。
typedef给类型重新起个名字,放在结构体声明前相当于把结构体类型重命名。