关闭

结构体浅谈

标签: 结构体
163人阅读 评论(0) 收藏 举报
分类:

结构体:

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。因此上述三个是等价的。 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5738次
    • 积分:281
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条