IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> C语言中结构体类型知识点 -> 正文阅读

[JavaScript知识库]C语言中结构体类型知识点

一、说明

  1. 在 JavaScript 中有对象的概念,在对象中可以定义不同数据类型的数据。C语言中的结构体就相当于 JavaScript 中的对象,也包含各种属性或方法。
  2. 在 C 语言中有数组数据,但不同于 JavaScript 的是,C 语言要求数组中所有数据的类型必须一样。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。
  3. 在C语言中,可以使结构体来存放一组不同类型的数据。

二、结构体的定义

  1. 语法

    struct 结构体名{
        结构体所包含的变量或数组
    };
    
  2. 结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员。

  3. 例:创建一个学生信息的结构体

    1. 代码

      #include <stdio.h>
      
      int main()
      {
      	struct stu {
      		char *name;			// 姓名
      		int age;			// 年龄
      		int num;			// 学号
      		char gropu;			// 所在组别
      		float score;		// 平均成绩
      	};
      }
      
    2. stu 为结构体名,它包含了 5 个成员,分别是 name、num、age、group、score。结构体成员的定义方式与变量和数组的定义方式相同,只是不能初始化即不能给结构体中成员直接赋值。

    3. 注意:大括号 } 后面的分号 ; 不能少,这是一条完整的语句,表示结构体的声明结束,舍去会报错。

三、结构体变量

  1. 在上面代码中定义了 stu 结构体,在结构体后面可以定义使用该结构体的变量,这里可以把 stu 看做一个模板,后方的变量是使用了该模板。

  2. 语法:

    #include <stdio.h>
    
    int main()
    {
    	struct stu {
    		char *name;			// 姓名
    		int age;			// 年龄
    		int num;			// 学号
    		char gropu;			// 所在组别
    		float score;		// 平均成绩
    	} stu1,stu2;
    }
    
  3. 说明

    1. 在上面代码中,stu1 和 stu2 都使用了 stu 这个模板,在 stu1 和 stu2 内部都存在 name、age、num、gropu、srore 这几个成员,并且可以给这些成员赋值(见下文)。
    2. 值得注意的是,} 后面是使用模板的变量,} 与变量之间用空格分隔,多个变量之间用 , 分隔。最后一个变量的结尾必须加 ;

四、成员的获取和赋值

  1. 结构体和数组类似,也是一组数据的集合,整体使用没有太大的意义。数组使用下标 [ ] 获取单个元素,结构体使用点号 . 获取单个成员。

  2. 语法:

    结构体变量名.成员名 = 成员值;

  3. 代码:

    #include <stdio.h>
    
    int main()
    {
    	struct stu {
    		char *name;			// 姓名
    		int age;			// 年龄
    		int num;			// 学号
    		char gropu;			// 所在组别
    		float score;		// 平均成绩
    	} stu1;
    
    	// 编辑学生1的信息
    	stu1.name = "张三";
    	stu1.age = 20;
    	stu1.num = 1001;
    	stu1.gropu = 'A';
    	stu1.score = 97.32;
    	printf("%s的年龄是%d岁,\n\n学号为%d,\n\n所在组是%c组,\n\n平均成绩为%.2f分!\n\n", stu1.name, stu1.age, stu1.num, stu1.gropu, stu1.score);
    }
    
  4. 运行效果

  5. 除上面逐条赋值外,还有一种更简单的方法,可以在定义变量时直接赋值。

    1. 代码

      #include <stdio.h>
      
      int main()
      {
      	struct stu {
      		char *name;			// 姓名
      		int age;			// 年龄
      		int num;			// 学号
      		char gropu;			// 所在组别
      		float score;		// 平均成绩
      	} stu1 = {"张三",20,1001,'A',97.32};
      
      	printf("%s的年龄是%d岁,\n\n学号为%d,\n\n所在组是%c组,\n\n平均成绩为%.2f分!\n\n", stu1.name, stu1.age, stu1.num, stu1.gropu, stu1.score);
      }
      
    2. 运行效果同上。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:54:08  更:2021-09-19 07:54:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:10:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码