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

黑马程序员-c语言结构体,联合以及枚举

2014-11-22 03:46 281 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

struct book{
char title[20];
char author[15];
float value;
};

struct book threeKing ={
"sanguoyanyi","luoguanzhong",14.66
};
struct book hongLouMeng = { .value = 14.6 };
struct book boos[20];


结构体的基本定义和使用

struct author{
char name[20];
int sex;
};
struct newbook{
char title[20];
struct author name;
float value;
};

struct newbook myBook ={
"sanguosha",
{"luoguanzhong",1},
14.99
};
printf("%s is %s , $%f\n",myBook.title,myBook.name.name,myBook.value);

struct newbook *yourBook;
yourBook = &myBook;
printf("yourBook%s is %s , $%f\n",yourBook->title,yourBook->name.name,yourBook->value);
printf("yourBook%s is %s , $%f\n",(*yourBook).title,(*yourBook).name.name,(*yourBook).value);


嵌套结构体以及结构指针的使用,需要注意的是指针结构体使用了一种新符号->间接成员运算符

union hold{
int digit;
double bigf;
char letter;
};

union hold test = {88};
printf("%d\n",test.digit);


union hold{
struct newbook book;
struct book books;
};


关于联合的思考,通常与结构体一起使用,但是感觉比较繁复

enum spectrum {red = 10,oragne,yellow,green,blue,violet};
enum spectrum color;

switch (color) {
case red:
printf("red %d",red);
break;
case blue:
printf("blue %d",blue);
break;
default:
break;
}
枚举通常与switch使用,也可以用作常量表示符使用,通常都是int类型,除非指定各单位值,不然都是递增

typedef int COLOR;
COLOR green = 1;


typedef 关键字用来标示新的类型名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: