asp.net网站制作视频教程,北京seo优化推广,常州营销型网站价格,网站虚拟主机哪个好一、结构体的介绍/*
语法#xff1a;struct 结构体名{成员列表;};切记切记有分号#xff01;说明#xff1a;成员列表就是指你要保存哪些类型的数据。注意#xff1a;上面的语法只是定义一个新的类型#xff0c;而这个类型叫做结构体类型。因为类型不能保存数据#xff0…一、结构体的介绍/*
语法struct 结构体名{成员列表;};切记切记有分号说明成员列表就是指你要保存哪些类型的数据。注意上面的语法只是定义一个新的类型而这个类型叫做结构体类型。因为类型不能保存数据所以我们要有结构体变量。
语法struct 结构体名 变量名;
变量赋值的语法变量名.成员名 数据;例 zs.age 16;输出结构体注意没有任何格式化控制符能够一次性输出整个结构体我们必须一个成员一个成员的输出结构体可以用来保存多个不同类型的数据可以把生活中的一些东西抽象成结构体
*/
//这里只是定义了一个结构体类型
struct person{float height; //身高float weight; //体重int age; //年龄char gender;//性别 f代表女 female m代表男char name[50]; //姓名
};int main(int argc, const char * argv[]) {struct person zs; //变量名zs 类型struct personzs.age 16;zs.gender m;zs.height 189;zs.weight 60;//zs.name 张三; 这是错误的strcpy(zs.name, 张三);printf(姓名%s 年龄%d 性别%c 身高%.0fn,zs.name,zs.age,zs.gender,zs.height);return 0;
}二、结构体的初始化/*
初始化1、先声明后赋值语法struct 结构体名 ;变量名.成员名 数据; 例如struct UserInfo userInfo;userInfo.age 17;2、在声明的时候初始化a、语法struct 结构体名 变量名 {数据1,数据2,数据N};例如struct UserInfo userInfo {1,17,张三};注意这种方式必须按结构体定义的成员顺序来赋值b、语法struct 结构体名 变量名 { .成员名1数据1, .成员名2数据2, .成员名N数据N};例如struct UserInfo userInfo {.userId 1, .age 17,.userName 张三};//一定要按照结构体中变量的顺序来写。3.先声明后一次性赋值struct 结构体名 变量名;变量名 (struct 结构体名){ 数据1,数据2,数据N }例 struct UserInfo s1;s1 (struct UserInfo){ 1, 17, 张三};
*/
//先定义一个结构体struct UserInfo{int userId;//编号int age; //年龄char UserName[50]; //用户名}
#include string.h
int main(int argc,const char * argv[]){struct UserInfo userInfo;userInfo.age 17;userInfo.userId 1; strcpy(userInfo.UserName,张三);return 0;
}三、结构体的其他使用/*1.可以定义无限个结构体用法跟之前说的用法完全一样只不过是多加了几个类型而已。2.作用域结构体定义在哪那么它的作用域就在它定义的位置到它所在的作用域结束。3.在结构体定义的大括号后面写标识符那么这个标识符就是这个结构体的变量.它的作用域跟它定义结构体的作用域一样 也可以同时定义多个变量以 , 隔开。例struct Person{int age;char name[50];}p3,p4,p5;4.结构体名可以省略这样就叫匿名结构体。例struct{int age;char name[50];int test;}p2;p2就是这个匿名结构体类型的变量可以在大括号后面写多个变量名;5.结构体变量之间赋值都是值传递比如说变量a赋值给变量bb变了后a不会改变。6.结构体作为函数的参数是值传递也就是说函数内改了形参的值实参不会改变7.结构体成员里面还可以定义别的结构体变量。//结构体里面某个成员又是结构体变量的三种赋值方式
例如struct Person p1;p1.age 16;p1.birthDay.year 1990;p1.birthDay.month 1;p1.birthDay.day 1;struct Person p2 { 16,刘德华,{1994,1,1}};struct Person p3;p3.birthDay (struct myDate){1994,1,1};*/struct myDate{int year;int month;int day;
};struct Person{int age;char name[50];//左边是类型 右边是成员名struct myDate birthDay;};struct Student{int stuNo;char name[50];
};struct Teacher{int age;int salary;char name[50];
};四、typedef的使用/*
typedef给某个类型起别名。
语法typedef 类型 别名 ;
例如typedef int i;i num 10;printf(%d n,num);
*/typedef struct{int age;char name[50];
}Person; //类型struct{int age;char name[50];
}p; //这个p是变量//当前面加了typedef大括号后面的标识符才是类型否则都是变量嵌入式物联网资料分享交流群332650978 入群有全套学习视频资料电子书免费赠送参考资料物联网开发入门直播课 - 嵌入式/物联网-C语言编程基础www.makeru.com.cnC语言_嵌入式www.makeru.com.cn嵌入式开发直播课 - 带你提升C编程能力www.makeru.com.cn嵌入式底层开发 - 夯实C语言从小白到大牛的进阶之路www.makeru.com.cn