C语言结构体
什么是结构体:简言之,就是各种数据类型的集合。像PHP的数组,也可以说是一个结构体,因为它数组里面也可以放各种类型的数据。
一、C语言中如何声明
结构体是一种自定义的数据类型,是创建变量的模板,不占用内存空间;
struct Student{
int id;
char name[50];
int age;
};
//注意:分号一定不能少
二、定义结构体变量
- 1、在声明结构体直接定义变量
struct Student{
int id;
char name[50];
int age;
} s1,s2;
- 2、数据类型 变量名
struct Student s1;
三、如何赋值和操作?
-
1、直接赋值
struct Student s1 = {1,"zero",28}
-
2、动态赋值
struct Student s1;
printf("please input the id");
scanf("%d",&s1.id);
printf("please inut the name");
scanf("%s",s1.name);
printf("please input the age");
scanf("%d",&s1.age);
printf("name=%s\n",s1.name);
//对于结构体的操作方式,使用“.”符号。当然也可以用结构指针"->"
struct Student *stp;
stp = &s1;
printf("name=%s\n",stp->name);
四、结构数组
无非就是数组里面放了一个个结构体,操作方式跟数组还是一样。
struct Student stu[5] = {{2,"zero",21},{3,"luffy",22},{3,"hello",33}};
struct Student *sp2=NULL;
int i;
sp2 = stu;
for(i=0;i<3;i++){
printf("name is=%s\n",sp2->name);
sp2++;//让指针后移
}
五、结构体指针
指针的操作方法还是一样,将结构体的首地址给赋给指针,就能够间接的访问结构成员了。
两种形式:
1、 p->name 2、 (*p).name “->”比较常用
结构指针作为函数参数
指针作为函数参数,无疑带来了许多好处。比如:我们做一个学生平均分的计算,当以结构体变量作为函数参数传递的时候,如果成员很多,会带来很大的空间和时间。
而,以指针作为参数只要传递一个地址,就可以对成员进行操作。
在linux搭建php环境:https://study.163.com/course/introduction/1209187856.htm