结构体浅谈

原创 2015年07月06日 20:10:29

结构体:

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言之结构体浅谈

一、什么是结构体 对于数组中,每个元素都是相同的,如果我们想使每个元素不同的话,我们可以考虑使用结构体。 结构体可以由多种不同类型的数据类型组成的新的数据类型 二、结构体的定义 格式: struct...
  • cl110cl
  • cl110cl
  • 2015年03月09日 23:55
  • 366

【Linux】浅谈Linux下的PCB—task_struct结构体

11115555451315,。;

浅谈结构体及linux下内存分配原则

结构体在程序中的应用是很广泛的,要处理的问题越复杂,数据量越多越杂,就越需要用到结构体。比如网络,内核,驱动等等。熟练使用结构体对每个程序员都是至关重要的。一个好的结构体不仅能使程序体系结构清晰,而且...

浅谈C++结构体的内存对齐

最近在认真学习C++基础,就此对于结构体的内存对齐做个学习笔记

LinuxC简谈之结构体的内存对齐和位域的存储

结构体的成员可以是很多的类型,结构体类型可以定义结构体类型的变量,这样就有各种类型的成员变量。那么,在内存中这些成员变量是如何存储的呢?今天我把我对此的一些理解分享一下。首先是结构体的内存对齐。接下来...

由C语言位域(冒号)谈C语言的结构体、枚举、共用体

今天看到一行代码 unsigned char busy:1; 不太明白 : 的作用,百度了几分钟,发现是结构体中位域操作符,深感平时工作疏于学习,以至于这么简单的问题还不知道,所以写了这篇文章,以作...

Java 解析 Linux C结构体

  • 2017年08月20日 13:31
  • 3KB
  • 下载

red hat c 编写的结构体通讯录

  • 2016年05月27日 21:39
  • 5KB
  • 下载

结构体(struct)的使用、内存分布以及字节对齐测试总结

最近和班上的一些"猿友"重新来完善或重新写以前在学校用C语言实现的数据结构,实现单链表、双向链表、循环链表、树、图等等一些数据结构。需要实现这些数据结构就必须熟练掌握C语言中的自定义类型,即结构体(s...

C语言结构体实现方法

  • 2015年03月21日 01:24
  • 548KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:结构体浅谈
举报原因:
原因补充:

(最多只允许输入30个字)