您的位置:首页 > 其它

结构体浅谈

2015-07-06 20:10 176 查看
结构体:

1、
什么是结构体?

a) 结构体使用户根据实际需要来定义的一些符合的新的数据类型。把基本数据类型组合在一起,形成的一个新的复合数据类型。

//定义一个学生类型的结构体

struct Student

{

int age;

char sex;

float score;

};

2、
为什么要用结构体?

a) 为了表示复杂的数据类型,而基本类型无法满足实际需求。

b) 逻辑上讲一个学生的成绩、性别、成绩应该是一个整体,而在基本类型中并没有这样一种数据类型能表示这样的学生。因此我们就需要自己构造一个这样的数据类型。

3、
定义一个结构体就相当于定义了一个数据类型。但是并没有开辟空间。也就是没有定义变量。

a) 但是在定义变量的时候在前面需要加上struct

4、
如何定义一个结构体

//定义一个学生类型的结构体

struct Student

{

int age;

char sex;

float score;

};

在其他的函数中使用的:structStudent str;
这是最常用的一种定义方式。

//定义一个学生类型的结构体

struct Student

{

int age;

char sex;

float score;

} stu_02; 在定义结构体的同时定义了结构体的变量名字。第二种定义方式

//定义一个学生类型的结构体

struct

{

int age;

char sex;

float score;

} stu_03; 不用数据类型名,直接定义变量名。第三种定义方式。

5、
初始化结构体。

a) 如果没有在定义的时候进行全部变量的初始化,在后来再进行赋值的时候就只能进行单个赋值。

6、取出结构体中的变量。

#include "stdio.h"

//定义一个学生类型的结构体

struct Student

{

int age;

char sex;

float score;

};

int main(void)

{

struct Studentstu={18,'F',60};

printf("%d,%c,%f\n",stu.age,stu.sex,stu.score);

struct Student*pStu=&stu;

pStu->age=30;

printf("%d\n",pStu->age);

return 0;

}

结构体中的变量的取值分为两种方式:

1、
结构体变量名.变量名(内部)

2、
结构体指针变量->变量名(内部)

如果在编译器中没有提示的话,编译一下就会出现。

如上的代码中。pStu->age等价于(*pStu).age等价于stu.age。

pStu->的含义就是*pStu。而*pStu就代表pStu指向的变量stu。因此上述三个是等价的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: