一、学习目标

  1. 了解C语言的结构体的使用方法
  2. 了解C语言结构体的结构的赋值
  3. 了解多种C语言结构体变量的赋值方法和取值方法

目录

C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。
第一篇:(一)脱离学习误区
第二篇:(二)C语言没那么难简单开发带你了解流程
第三篇:(三)轻轻松松理解第一个C语言程序
第四篇:(四)语言的基本数据类型及变量
第五篇:(五)C语言的变量、常量及运算
第六篇:(六)轻轻松松了解C语言的逻辑运算
第七篇:(七)C语言的循环分分钟上手
第八篇:(八)了解基本数组还不是那么简单
第九篇:(九)C语言二维数组与循环嵌套
第十篇:(十)C语言的指针原来是这样
第十一篇:(十一)C语言自定义函数真的很简单
第十二篇:(十二)原来结构体是这么回事
第十三篇:(十三)socket服务端编写

C语言新手的100个报错解法

推荐

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~

二、了解结构体的使用方法

C语言没有一些其它高级语言中的面向对象概念,如果你是新手的话知道这个专业术语即可,在之后的不断深入学习中早晚会遇见;为什么我把C语言的结构体与面向对象做一个比较?因为他们之间有一定的相似度,这是一个很重要的概念。

2.1 什么是C语言结构体
在学习C语言结构体前我们需要知道C语言结构体是什么东西,形式是如何的,它的核心的组成思想是什么。

结构体简单的来说是一个数据的类型,跟int整型、char字符型类型一样,都是一种数据类型,在此别纠结它具体是什么,毕竟还没深入学,在此只要知道它也是数据类型即可。结构体是一种数据类型但它与int整型、char字符型数据不同之处是需要我们自己编写它的一个数据结构(这个数据结构是单纯意义上的数据组成)。结构体是有多个或其它数量的数据类型组成的一种结构,其它数量的数据类型可以是整形、字符型等。

由上所述我们可以知道,结构体是一个变量,但是这个变量需要我们自己去编写它的数据构成,这些数据构成是一些数据类型的变量。

我们看一下结构体示例:

struct human{int age;char sex;char name;
} ;

结构体使用struct 进行声明,struct 后接的一对花括号,花括号中编写这个结构体所包含的变量有哪些,并且使用分号表示结构体内变量的结束;在struct之后花括号之前为结构体名,结构体名与变量名类似。

以上的结构体所包含的变量有整形变量age,字符变量sex以及字符变量name,名称为human;结构体我们可以看为是一个类别,该类别的组成元素有哪些。

以上结构体名为human中文译为人类,那么一个人有哪些属性呢?首先有年龄是一个整数数据,所以我在结构体中编写一个整数类型的变量age;人类还有性别,我在human结构体中使用sex表示说明并且也定义了一个char类型的变量name用于存储人类的名称代号。从以上所述可以很清楚的知道当前结构体human的一个组成。

注意:花括号末尾需要分号表示结束。
2.2 结构体的使用
在以上内容中重点强调了结构体是一个类型,那么一个类型的变量如何进行声明创建?例如int类型定义一个变量a为 int a;,那么结构体就可以写成 结构体名 变量;,这样写是错的,必须在结构体名前添加一个 struct关键字,表示接下来我所声明的变量为结构体: struct 结构体名 变量;。代码示例为:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming;
}

以上示例中定义了一个名为human的结构体,随后根据这个结构体创建了一个xiaoming的结构体变量。
创建完结构体变量后我们需要对这个结构体变量进行赋值,赋值使用点运算符“.”,可以将这个点当作“的”使用。例如我需要为xiaoming增加一个年龄,那么就可以使用xiaoming后接一个点,表示小明的什么元素要赋值多少,可以写成:

xiaoming.age=10;

同样,其它的元素都可以这样去进行赋值,我们称这些元素为成员变量。其它成员变量的赋值:

xiaoming.sex='T';
xiaoming.name='M';

在此我赋值性别为男,用T表示,小明的名字用M表示。
那赋值完毕后如何进行取值呢?取值的方式很简单,也是使用点运算符:

xiaoming.age

我们赋值完毕后输出内容查看一下是否成功:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming; xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';printf(" age 为:%d\n",xiaoming.age);printf(" sex 为:%d\n",xiaoming.sex);printf(" name 为:%d\n",xiaoming.name);
}

运行结果如下:

结构体也可以直接在编写的时候直接创建结构体变量:

struct human{int age;char sex;char name;} xiaoming;

以上代码中直接在结构体末尾花括号之后,结束分号前创建了一个结构体变量,整体代码:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} xiaoming;xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';printf(" age 为:%d\n",xiaoming.age);printf(" sex 为:%d\n",xiaoming.sex);printf(" name 为:%d\n",xiaoming.name);
}

运行结果均为一致,也可以创建多个结构体变量:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} xiaoming,xiaohong;xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';xiaohong.age=11;xiaohong.sex='M';xiaohong.name='H';printf("xiaohong age 为:%d\n",xiaoming.age);printf("xiaohong sex 为:%d\n",xiaoming.sex);printf("xiaohong name 为:%d\n",xiaoming.name);
}

运行结果为:

也可以在直接创建结构体变量的时候赋值:

struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong;

赋值在变量名后使用一个等于号,值使用一对花括号,花括号内编写不同的值,并且用逗号进行分隔;也可以同时赋值2个结构体变量:

struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong={1,'M','H'};

整体代码为:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong={1,'M','H'};printf("xiaoming age 为:%d\n",xiaoming.age);printf("xiaoming sex 为:%d\n",xiaoming.sex);printf("xiaoming name 为:%d\n\n",xiaoming.name);printf("xiaohong age 为:%d\n",xiaohong.age);printf("xiaohong sex 为:%d\n",xiaohong.sex);printf("xiaohong name 为:%d\n",xiaohong.name);
}

运行结果为:

三、总结

  1. 了解C语言的结构体的的结构是一组不同类型数据的组合
  2. 了解C语言结构体的结构的赋值是使用点运算符对内的成员变量进行赋值
  3. 了解了多种结构体变量的赋值方法和取值方法,赋值可以在新建时赋值也可以在之后赋值,取值使用点运算符进行取值

《零基础看得懂的C语言入门教程 》——(十二)原来结构体是这么回事相关推荐

  1. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

  2. 《零基础看得懂的C语言入门教程 》——(一)脱离学习误区

    本节视频连接: https://www.bilibili.com/video/BV1Qv411t7ae 新手C语言学习有些误区你应该知道,这样学习起来事半功倍~ 一.前言 距离上一次编写C语言的教程是 ...

  3. 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程

    一.学习目标 了解DevC集成开发环境 了解集成开发环境 了解HelloWorld程序 了解HelloWorld程序的编写方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一 ...

  4. 《零基础看得懂的C语言入门教程 》——(十三)socket服务端编写

    一.学习目标 了解C语言的socket的概念 了解C语言socket的使用方法 完成C语言socket服务端 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习 ...

  5. 《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序

    一.学习目标 了解C语言代码的一般结构 了解函数的概念 了解printf函数的使用方法 了解头文件的概念 了解system函数的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语 ...

  6. 《零基础看得懂的C语言入门教程 》——(十一)C语言自定义函数真的很简单

    一.学习目标 了解C语言的自定义函数的使用方法 了解C语言自定义函数的传参 了解C语言自定义函数的返回值 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 ...

  7. 《零基础看得懂的C语言入门教程 》——(十)C语言的指针原来是这样

    一.学习目标 了解指针的概念 了解指针的使用方法 了解双重指针 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 第二篇:(二)C语言没那么难简单开发带你 ...

  8. 《零基础看得懂的C语言入门教程 》——(九)C语言二维数组与循环嵌套

    一.学习目标 了解二维数组的使用方法 了解循环嵌套的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 第二篇:(二)C语言没那么难简单开发带你了 ...

  9. 《零基础看得懂的C语言入门教程 》——(八)了解基本数组还不是那么简单

    一.学习目标 了解数组的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 第二篇:(二)C语言没那么难简单开发带你了解流程 第三篇:(三)轻轻松 ...

最新文章

  1. 陈松松:如何锁定细分领域,视频营销才更容易持续做下去
  2. 每日一笑 | 在地铁上被老奶奶让座是一种什么样的体验?
  3. AT3955-[AGC023D]Go Home【结论,递归】
  4. JS factory
  5. 宝塔面板服务器ip地址修改_「网站」快速搭建服务器环境及网站
  6. StorageEvent
  7. MongoDB 基础(六)安全性(权限操作)
  8. 北大学霸不当外交官,回国种地养猪终于熬出年销2000万
  9. 知道打印机的IP地址,win10怎样连接打印机?
  10. 关于微信小程序--授权弹窗
  11. USB to TTL python 本地测试串口通信
  12. 工业软件+无代码开发,国产软件崛起正当时
  13. PHP的ob_flush()与flush()区别
  14. ESXI主机紫屏分析方法
  15. 姚洋:建议国家购买三四线空置房 再低价出售给进城农民
  16. 全程电子商务崛起山东
  17. 毕业近一个月,工作近期的一些感受。
  18. 鼠标单击经常被当做双击的问题
  19. Linux下的粘滞位详解
  20. 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(一)

热门文章

  1. .NET 6 平台系列1 .NET Framework发展历程
  2. 在香蕉派的树莓派系统上配置 Syncthing 自启动(暨 Linux 软件自启服务配置)
  3. redis为什么这么火该怎么用
  4. .Net Core 三大Redis客户端对比和使用心得
  5. asp.net core 系列之Startup
  6. VS Code 中有哪些好用的 Azure 插件?
  7. 如何在ASP.NET Core中使用Azure Service Bus Queue
  8. Python、Java、TypeScript 和 Perl 作者谈语言设计
  9. 中间件是什么?在.NET Core中的工作原理又是怎样的呢?
  10. 基于 websocket 实现的 im 实时通讯案例