您的位置:首页 > 其它

复杂数据类型——其他数据类型

2015-02-14 22:41 155 查看
复杂数据类型,还有其他类型~~!

注:每个独立段的代码块,都默认在int main()函数里面,且开头都要空四格。

1、变量类型

根据变量作用域来分,可分两类。

1>局部变量 : 在函数内部(代码块)定义的变量

从定义变量的那一行开始,一直到代码块结束

从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收

2>全局变量 :在函数外面定义的变量

从定义变量的那一行开始一直到文件结尾。

2、结构体

可以由多个不同类型的数据构成。

定义结构体:

int main()

{

//定义结构体类型

struct person

{//里面的三个变量可以称为结构体的成员或者属性

int age;

double height;

char *name;

};

//根据结构体类型,定义结构体变量

struct person p = {20; 1.55; "jack" };

p.age = 30;

p.name = "rose";

printf("age=%d,name=%s,height=%f\n", p.age, p.name, p.height);

return 0;

}

3、结构体多种定义方式

1>定义结构体类型,利用定义好的类型来定义结构体变量,结构体类型不能重复定义

从定义类型的那一行开始,一直到所在的代码块结束,或定义在全局的结构体到所在的文件结束。

struct Student

{

int age;

double height;

char *name;

} stu;

struct Student stu2;

2>第二种结构体定义方式

下面定义结构体的方法不能重用

struct

{

int age;

double height;

char *name;

} stu;

struct
{
int age;
double height;
char *name;
} stu2;
4、结构体数组
先定义结构体类型
struct FastRecore
{
int no;
char *name;
int score;
int ages;
};

再定义结构体变量数组
struct FastRecore records[3] =
{
{1, "jack", 211, 20},
{2, "jim", 311, 30},
{3, "jake", 411, 40}
};
遍历结构体数组
for(int i = 0; i <4; i++)
{
printf("%d\t%s\t%d\t%d\n",records[i].no, records[i].name, records[i].score,records[i].ages);
}
5、指向结构体的指针

struct Student

{

int no;

char *name;

} ;

定义结构体变来量

struct Student stu = {1, "jack"};

定义一个结构体指针*p

struct Student *p

指针P指向了stu变量

p = &stu;

第一种输出方式

printf("name=%s, no=%d\n",stu.name, stu.no);

第二种输出方式

printf("name=%s, no=%d\n",(*p).name, (*p).no);

第三种输出方式

printf("name=%s, no=%d\n",p->name, p->no);

6、结构体嵌套定义

有时候一些结构体类型,会比较麻烦,这个时候就需要嵌套定义

struct Student

{

int ages;

floot height;

};

struct  Class

{

int  no;

struct Student ClassOne;

struct Student ClassTwo;

};

struct  Class stu = {1,{19,1.78 },{29,1.81}};

输出

printf("编号=%d\t年龄=%d\t身高=%f\n", stu.no,stu.ClassOne.ages,stu.ClassOne.height);

7、枚举类型

首先定义枚举类型

enum Day

{

one,

two,

sthree,

four,

five,

six,

seven

};

其次定义枚举变量

enum Day day=seven;

printf("%d\n",day);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: