C语言基础六_结构体、枚举

结构体:

一般定义形式:

 struct 结构体名{
------类型名1成员名1;
------类型名2成员名2;
------。。。
};


可以在main函数内部定义,也可以在外部定义,哪里都可以

//定义一个名为Student的结构体,定义类型时系统并没有为它分配内存
struct Student{
------int age;//4字节
------char *name;
------float height;//4字节
};//存储的地址是连续的,按定义顺序排
//定义一个结构体变量,此时系统为stu分配了内存
struct Student stu={27,”mj“,1.8f};//所有成员占的存储空间==结构体的存储空间
//一定要在定义的时候初始化:
stu={27,”mj“,1.8f};//这是错误的
printf("age=%d\n",stu.age);//打印27.    通过点来调用,类似对象
stu.age=28//更改了age
还有一种定义方式:
struct Student {//Student完全可以省略
。。。
} stu={27,”mj“,1.8f};
结构体内还可以包含别的结构体:
struct Date{
-----int year;
-----int month;
-----int day;
}
struct Strudent{
-----int age;
-----struct Date birthday;
};
struct Student stu={27,{2009,10,10}};
结构体数组:
struct Student stu[2]={{25,”lmj“,1.8f},{27,”mj“,1.8f}};
结构体形参:
struct Person{
-----int age;
}
void change(struct Person p){
-----p.age=9;
}
int main(){
----struct Person person={27};
----change(person);
----printf(”%d”,person.age);//结果还是27.
}
指向结构体的指针:
struct Person person={27};
struct Person *p;
p=&person;
//访问结构体成员:
person.age
(*p).age;
p->age;

枚举:
定义一种枚举类型:
enum Season(spring,summer,autumn,winter);
//定义一个枚举变量
enum Season s=spring;
//定义枚举类型的同时定义一个枚举变量
enum Season{ spring,summer,autumn,winter) s=spring;//也可以省略Season。

注意:c语言编译器会将枚举类型作为整型常量处理,称为枚举常量。
printf(“%d“,s);//打印0
定义的时候更改值,则后面的元素在其基础上加1
enum Season{ spring,summer+3,autumn,winter) s=autumn;
printf(“%d“,s);//打印4
遍历枚举:
for(s=spring;s<=winter;s++)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值