您的位置:首页 > 编程语言 > C语言/C++

黑马程序员——C语言——结构体、枚举

2014-06-10 20:05 295 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
//定义一个名为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++)


----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: