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

复杂数据类型,还有其他类型~~!

注:每个独立段的代码块,都默认在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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值