初识结构体
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
typedef struct home
{char adress[20];int zip;
}home;struct Stu1
{char name[7];short age;int ID;char sex[3];float money;
}s1;//定義結(jié)構(gòu)體變量s1,s2(全局變量)
typedef struct Stu
{char name[7];short age;home a;//結(jié)構(gòu)體嵌套int ID;char sex[3];float money;
}Stu;//typedef 重定義關(guān)鍵字,將自定義結(jié)構(gòu)體類型:struct Stu 定義為Stuvoid print1(Stu num)//傳入?yún)?shù)為結(jié)構(gòu)體變量用 .使用成員
{printf("name:%s\n",num.name);printf("age:%d\n", num.age);printf("adress:%s\n", num.a.adress);printf("zip:%d\n", num.a.zip);printf("ID:%d\n", num.ID);printf("sex:%s\n", num.sex);printf("money:%4.lf\n", num.money);
}
void print2(struct Stu1 num)
{printf("name:%s\n", num.name);//printf("age:%d\n", num.age);printf("ID:%d\n", num.ID);printf("sex:%s\n", num.sex);printf("money:%4.1lf\n", num.money);
}
void print3(Stu *num)//傳入?yún)?shù)為地址用->指向成員
{printf("name:%s\n",num->name);//printf("age:%d\n",num->age);printf("adress:%s\n", num->a.adress);//結(jié)構(gòu)體嵌套使用方法printf("zip:%d\n", num->a.zip);printf("ID:%d\n",num->ID);printf("sex:%s\n",num->sex);printf("money:%4.1lf\n",num->money);
}int main() {Stu s = {"張三三",20,"大牛村",431100,1111,"男",500.1};s1 = { "張三三",20,1111,"男",500.1 };print1(s);printf("---------------------------------\n");print2(s1);printf("---------------------------------\n");print3(&s);return 0;
}
?主函數(shù)中的函數(shù)調(diào)用print1、和print3它們實(shí)現(xiàn)的功能完全一樣,但是就內(nèi)存與時(shí)間的調(diào)用情況而言,print3更好,因?yàn)閜rint1在進(jìn)行傳參時(shí)會將s變量完全拷貝一份,所用的空間更大,傳參時(shí)間更慢,但是print3只傳地址也就是說只穿入一個(gè)4/8字節(jié),相對而言更加優(yōu)雅!
總結(jié)
- 上一篇: ALSA声卡08_从零编写之框架_学习笔
- 下一篇: 战舰帝国服务器维护,【图片】9月17日更