结构体浅谈

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

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

浅谈人工智能

历史      各个文明中都有杰出的工匠发明了自动机器来代替人类劳动,早在春秋时期鲁班就发明了世界上第一个机器人,可在空中飞翔‘三日不下’;三国时期蜀汉的诸葛亮发明了‘木牛流马’来运送战备物资,称得上...
  • oba_gaga
  • oba_gaga
  • 2016年10月09日 20:57
  • 4220

小白学《神经网络与深度学习》笔记之一-计算机的潜意识:浅谈神经网络-从神经元到深度学习

转载:http://www.cnblogs.com/subconscious/p/5058741.html 神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网...
  • yingwei13mei
  • yingwei13mei
  • 2016年12月15日 21:35
  • 513

浅谈结构体大小

//1、结构体大小等于最后一个成员地址的偏移量加上最后一个成员的大小//2、结构体变量中的成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)//3、结构体大小必须是所有成员大小的整数倍//...
  • Fleaves
  • Fleaves
  • 2010年12月18日 22:10
  • 303

浅谈结构体如何分配内存

今天把操作符sizeof用了个遍,各种类型基本都用了,最后发现结构体类型最麻烦。下面直接进入主题: (1)先是定义了如下结构体:      struct{             char a;...
  • Esther_Heesch
  • Esther_Heesch
  • 2016年06月22日 23:54
  • 418

软件工程之浅谈

      发展至今,软件生产的发展经过了程序设计、程序系统、软件工程三个阶段;其中软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。在软件开发技术方面,主要是研究软件开发方法、软件开发过程...
  • sunny19890816
  • sunny19890816
  • 2010年07月01日 23:18
  • 310

浅谈人工智能:现状、任务、构架与统一 | 正本清源

朱松纯   加州大学洛杉矶分校UCLA 统计学和计算机科学教授 视觉、认知、学习与自主机器人中心主任 VCLA@UCLA   2017年11月02日 刊登于 《视觉求索》微信公众号 目...
  • x32sky
  • x32sky
  • 2017年11月03日 17:37
  • 1677

林建:计算机专业学习浅谈

一、广泛了解,从科普书籍开始 选择计算机专业的同学,也许是因为原先有一定的基础,也许是因为一时的激情,但更多的人,可能对自己的选择没有深刻的认识,或多或少对计算机专 业有一些神秘的感觉。自己究竟...
  • yang_yulei
  • yang_yulei
  • 2014年10月13日 23:19
  • 1003

Spring浅谈

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个开源的控制反转(Inversion of Con...
  • Gane_Cheng
  • Gane_Cheng
  • 2016年10月09日 21:30
  • 3062

浅谈在XXX公司的职业经历

个人职业经历的分享
  • lcy4599
  • lcy4599
  • 2017年08月26日 21:10
  • 296

浅谈AngularJS

个人博客搭建完成,欢迎大家来访问哦 黎默丶lymoo的博客 博主最近了解学习了一下angularJS,记录一下心得给大家分享一下...
  • github_37582965
  • github_37582965
  • 2017年04月20日 09:17
  • 732
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:结构体浅谈
举报原因:
原因补充:

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