初识结构体
#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;//定義結構體變量s1,s2(全局變量)
typedef struct Stu
{char name[7];short age;home a;//結構體嵌套int ID;char sex[3];float money;
}Stu;//typedef 重定義關鍵字,將自定義結構體類型:struct Stu 定義為Stuvoid print1(Stu num)//傳入參數為結構體變量用 .使用成員
{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)//傳入參數為地址用->指向成員
{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.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;
}
?主函數中的函數調用print1、和print3它們實現的功能完全一樣,但是就內存與時間的調用情況而言,print3更好,因為print1在進行傳參時會將s變量完全拷貝一份,所用的空間更大,傳參時間更慢,但是print3只傳地址也就是說只穿入一個4/8字節,相對而言更加優雅!
總結
- 上一篇: ALSA声卡08_从零编写之框架_学习笔
- 下一篇: 战舰帝国服务器维护,【图片】9月17日更