结构体是一种构造数据类型 (构造数据类型:数组类型、结构体类型(struct)、共用体类型(union))。用途:把不同类型的数据组合成一个整体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。
第一种:
#include <stdio.h>
#include <string.h>
int main()
{
struct PERSON{
int age;
int height;
char name[15];
}p1;
p1.age = 28;
p1.height = 178;
strcpy(p1.name, "phper");
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
第二种:
#include <stdio.h>
#include <string.h>
struct PSERSON{
int age;
int height;
char name[15];
}p1={
age:28,
height:178,
name:"phper"
};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
第三种:
#include <stdio.h>
#include <string.h>
struct PSERSON{
int age;
int height;
char name[15];
}p1={
.age = 28,
.height = 178,
.name = "phper"
};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
第四种:
#include <stdio.h> #include <string.h> struct PSERSON{ int age; int height; char name[15]; }p1={28,178,"phper"}; printf("%d,%d,%s",p1.age,p1.height,p1.name); }
结果
小案例:
#include <stdio.h> #include <string.h> struct TEST { int age; int height; char name[15]; }; void function_print(struct TEST p1) { printf("%d/n",p1.age); printf("%d/n",p1.height); printf("%s/n",p1.name); } int main() { struct TEST test={28,178,"phper"}; function_print(test); return 0; }
结果:
———再来一个案例结合注释吸收一下———
#include <stdio.h> int main() { //定义结构体类型 struct Person { int age; int height; char *name; }; //初始化的4种方式 //1.定义的同时初始化 struct Person p1 = {28,178,"phper"}; //2.先定义再逐个初始化 struct Person p2; p2.age = 28; p2.height = 178; p2.name = "phper"; //3.先定义再一次性初始化 struct Person p3; p3 = (struct Person){28,178,"phper"}; //注意:结构体和数组在这里的区别,数组不能先定义再进行一次性初始化 //结构体要明确的告诉系统{}中是一个结构体 //4.指定将数据赋值给指定的属性 struct Person p4 = { .age=28 , .height=178, .name="phper"}; //打印结构体中取数据 //拿p4测试 printf("%d/n",p4.age); printf("%d/n",p4.height); printf("%s/n",p4.name); return 0; }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/17131.html