首页 > 代码库 > 结构体
结构体
1、结构体的3种定义方式
定义结构体类型后定义结构体变量//定义结构体类型struct struct_1{ char *name; int age;}; //结构体大括号外加;每项后加; //定义结构体变量struct struct_1 str_1 = {"jiao", 26};str_1.name = "fftu"; //修改函数体中的属性printf("%s--%d", str_1.name, str_1.age);*结构体实例化后不能重新整体赋值,只能调用属性赋值
定义结构体类型的同时定义结构体变量struct struct_2{ char *name; int age;} stu_2 = {"heinrich", 88};struct struct_2 stu_3 = {"jiao", 90};直接定义结构体变量struct{ char *name; int age;} stu_2 = {"heinrich", 88};2、结构体中包含结构体struct info{ char *ps; char *date;}; struct man{ char *name; int age; struct info mans_info;}; struct info info_1 = { "ps_1", "2017.4.1"}; struct man man_1 = {"fftu", 26, info_1};printf("%s\n%d\n%s\n%s\n", man_1.name, man_1.age, man_1.mans_info.ps, man_1.mans_info.date); 3、结构体数组struct struct_1{ char *name; int age;}; struct struct_1 str[2] = { {"fftu", 99}, {"jiao", 26}}; printf("%s\n%d", str[1].name, str[1].age);4、结构体作为参数传递struct struct_1{ char *name; int age;};void fun_1(struct struct_1 str){ //struct struct_1相当于类型,比如int str.name = "heinrich"; str.age = 999;}struct struct_1 str_1 = {"jiao", 256}; fun_1(str_1); //传递的是值,原结构体变量不会被修改printf("%s\n%d", str_1.name, str_1.age);5、结构体指针struct struct_1{ char *name; int age;};void fun_1(struct struct_1 *str){ str->name = "heinrich"; //通过地址访问变量,不做取值运算 str->age = 999;}struct struct_1 str_1 = {"jiao", 256};struct struct_1 *p = &str_1;fun_1(p);printf("%s\n%d", str_1.name, str_1.age);
结构体
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。