C——结构体

2023-11-06

1、自定义类型

  • 自定义类型就是给数据类型取别名

  • 自定义类型不会产生新类型

    typedef int INTEGER;
    INTEGER i,j;
    
    typedef int* INTEGER;
    INTEGER p;
    INTEGER *q
    

2、结构体

结构体中成员类型可以相同也可以不同
在C语言中,数组是表示类型相同的数据,而结构体则是若干类型不同或相同数据项的集合

2.1、结构体类型说明

  • 声明结构体类型的一般形式为:

    struct 结构体名{
    	成员列表
    };
    
  • 例:

    struct student{
    	int num;
    	char name[8];
    	float score;
    };
    

2.2、结构体变量的定义

  1. 声说明结构体类型,在定义结构体变量

    struct student{
    	int num;
    	char name[8];
    };
    struct student a,*b,c[3];
    
  2. 声明结构体类型的同时定义结构体变量

    struct student{
    	int num;
    	char name[8];
    	}a,*b,c[3];
    
  3. 直接定义结构体变量

    struct {
    	int num;
    	char name[8];
    }a,b,c[3];
    
  4. 使用用户自定义类型定义结构体变量

    typedef struct student{
    	int num;
    	char name[8];
    }STD;
    STD a,*b,c[3]
    

2.3、结构体的初始化

  1. 结构体变量的初始化

    struct data{
    	int a;
    	float b;
    }s={12,24.56};
    
  2. 结构体数组的初始化

    struct {
    	int x;
    	int y;
    }c[3]={12,24,16,48,60,72};
    

2.4、结构体变量所占空间大小

  • 结构体变量所占空间大小等于所有成员之和

    struct std{
    	int a[2];			//此处是VC6.0环境下(int占四个字节)
    	char ch[10];
    	float s;
    	double f;
    } std1,*p=&std1;
    结构体变量std1所占的内存空间字节数为:30
    结构体指针变量p所占的内存空间字节数为:4
    

2.5、结构体成员的引用

  • 形式1:结构体变量名.成员名

  • 形式2:(*结构体指针名).成员名

  • 形式3:结构指针名->成员名

  • . 成员运算符

  • -> 指向运算符

    #include <stdio.h>
    struct abc{
    int a,b,c;
    };
    int maint(){
    	struct abc s[2]={{1,2,3},{4,5,6}};
    	int t;
    	t=s[0].b+s[1].a;
    	printf("%d\n",t);
    	return 0;
    }
    输出结果:6
    

3、链表

3.1、处理动态链表所需的函数

  • malloc()函数:分配存储单元

    int *p;
    p=(int*)malloc(sizeof(int));		//分配整型存储单元,返回整型指针赋给指针p
    
  • calloc()函数:分配指定的存储单元

    char *p;
    p=(char*)calloc(10,sizeof(char));		//分配10个字符型的存储单元,返回首地址赋给指针p
    
  • free()函数:释放存储单元

    free(p);		//释放指针p所指的存储单元
    

3.2、指向自身的结构体类型

  • 数据域(data)——指针域(next)

    struct node{
    	int data;
    	struct node *next;
    };
    

3.3、静态链表

struct node{
	int data;
	struct node *next;
}int main(){
	struct node a,b,c,*p;				//定义
	a.data=1;b.data=2;c.data=3;			//赋值
	a.next=&b;b.next=&c;c.next=NULL;	//连接
	p=&a;
	while(p){
		printf("%d\n",p->data);
		p=p->next;
	}
	return 0;
}

3.4、链表的插入与删除

  • 插入(后插法):将q节点插入到p节点之后

    q->next=p->next;
    p->next=q;
    
  • 删除:将q节点从链表中删除

    p->next=q->next;
    free(q);
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C——结构体 的相关文章

  • php getmimetype,wordpress关于日志的常用函数get_post_mime_type()

    说明 按ID编号检索附件的mime类型 该函数可用于任何文章类型 但更适用于附件类型 用法 参数 ID 整数 可选 文章ID 默认值 返回的值 布尔型 字符 返回mime类型 出错时则返回False 示例 mime type get pos
  • DirectShow--用GraphEdit辅助调试

    前面的话 GraphEdit 微软的SDK里面有个DirectShow的辅助工具GraphEdit 这里的文字简单介绍如何将应用程序生成的GraphBuilder插入到GraphEdit中直观的显示 可能一开始我们对这种应用有点儿不理解 既
  • 牛客网 - 华为OD算法机试(可内推)

    1 前言 这几天在闭关修炼数据结构和算法 也好几天没有更新博客了 其实我也没学多久的算法 满打满算牛客和leecode也就刷了四十来道题 其实算法也没有我们一开始想象的那么难 至少面试考的算法都还比较基础 今天参加了华为OD的机试 没有想象
  • Streamlit 讲解专栏(八):图像、音频与视频魔法

    文章目录 1 前言 2 st image 嵌入图像内容 2 1 图像展示与描述 2 2 调整图像尺寸 2 3 使用本地文件或URL 3 st audio 嵌入音频内容 3 1 播放音频文件 3 2 生成音频数据播放 4 st video 嵌
  • html5中链接和分组标签

    本小白今天新学了一点html5标签的用法 内容简单 希望和大家分享一下 对html5感兴趣的小白可以去CSDN上找视频教程具体学习 http edu csdn net course detail 489 5454 auto start 1
  • 进程的休眠与唤醒(等待队列)

    1 进程休眠 1 进程有三种基本状态 就绪态 阻塞态 运行态 lt 1 gt 阻塞态 进程缺少除了CPU之外的某些资源 因此该进程不能被运行 被阻塞住了不能被CPU调度 lt 2 gt 就绪态 进程分配到了除CPU之外的所有资源 等待CPU

随机推荐

  • GLSL里自定义attribute变量

    在做法线贴图的时候需要传入顶点的切线数据 这个顶点属性值是不包含在GLSL默认提供里的 需要自己实现 于是学习了一下 其实非常简单 首先需要glGetAttribLocation来获取变量的索引值 然后调用glVertexAttrib对其进
  • 微电子专业

    作者IC修真院 今天来聊聊微电子高校 提到微电子专业 肯定不得不说9所首批示范性微电子学院 今天就来盘他们 类似于专业设置 培养方案 课程设置这类信息 在学校官网上都是可以直接搜索到的 就不和大家赘述了 这里主要就方向优势 科研能力和业内认
  • PHP网站设计思路

    本文是对 PHP and MySQL Web Development 第5版27章中项目的总结 1 分析所需功能 列出主要功能模块 登录 注册 忘记密码 重设密码 登出 书签浏览 书签增加 书签删除 书签推荐 确定模块之间的先后转移关系 2
  • 鼠标滚动事件 - onmousewheel

    1 Jquery MouseWheel jquery默认是不支持支持鼠标滚轮事件 mousewheel jquery MouseWheel下载 https github com jquery jquery mousewheel blob m
  • 先后离开谷歌、雅虎后,梅姐的 AI 创业公司,再获两千万美金融资

    内容提要 硅谷一家创业公司 Lumi Labs 完成了近 2000 万美元的融资 这家鲜为人知的初创公司 凭什么能够拿下如此巨额的融资 这也许与其背后的大 boss 有关 它的创始人正是前雅虎 CEO 玛丽莎 梅耶尔 Marissa May
  • @JsonIgnoreProperties 解决实体中引用其他实体问题

    解决办法 json转换成的实体类加注解 JsonIgnoreProperties ignoreUnknown true 注意这是类级别的注解 JsonIgnore注解用来忽略某些字段 可以用在Field或者Getter方法上 用在Sette
  • _MSC_VER详细介绍

    MSC VER是微软的预编译控制 MSC VER可以分解为 MS Microsoft的简写 C MSC就是Microsoft的C编译器 VER Version的简写 MSC VER的意思就是 Microsoft的C编译器的版本 微软不同时期
  • 深度学习入门 ---- 张量(Tensor)

    文章目录 张量 张量在深度学习领域的定义 张量的基本属性 使用PyTorch 安装PyTorch 查看安装版本 创建张量 常用函数 四种创建张量的方式和区别 四则运算 张量 张量在深度学习领域的定义 张量 tensor 是多维数组 目的是把
  • 计算机配置内存容量怎么调,如何设置电脑虚拟内存,电脑虚拟内存设置多少最合理?...

    电脑虚拟内存是为了缓解CPU运行的压力而产生的一种新技术也可以理解为把电脑硬盘分出来一部分空间当作内存来使用 今天小编就为大家讲解下如何设置电脑虚拟内存 电脑虚拟内存设置多少最合理 希望对大家有所帮助 1 点击电脑左下角的开始菜单 找到控制
  • JavaScript中defer的作用

    JavaScript中defer的作用 Javascript中defer的作用是文档加载完毕了再执行脚本 这样会避免找不到对象的问题 defer是脚本程序强大功能中的一个 无名英雄 它告诉浏览器Script段包含了无需立即执行的代码 并且
  • Java浅拷贝和深拷贝

    Java Android 基础知识梳理 11 浅拷贝 Vs 深拷贝 Java对象数组深拷贝 java List复制 浅拷贝与深拷贝
  • C# 索引器(Indexer)

    C 索引器 Indexer 转自 http www runoob com csharp csharp indexer html 索引器 Indexer 允许一个对象可以像数组一样被索引 当您为类定义一个索引器时 该类的行为就会像一个 虚拟数
  • ibm服务器阵列卡与型号,IBM阵列卡介绍和服务器对阵列卡的支持情况

    ZDNetChina服务器站 芯片 组件配置技巧 目前IBM的阵列卡从控制的硬盘来说可以分成三大类 控制SCSI硬盘的SCSI RAID控制器 ServeRaid ServeRaid II ServeRaid 3L ServeRaid 3H
  • 【Leetcode】257. 二叉树的所有路径

    题目描述 题解 能用String解决的最好不要走StringBuilder 递归时注意空结点 null 回退和叶子结点判定回退 执行用时 9 ms 在所有 Java 提交中击败了30 66 的用户 内存消耗 39 1 MB 在所有 Java
  • Python 中的range(),arange()函数

    Python 中的range arange 函数 arange函数用于创建等差数组 使用频率非常高 arange非常类似range函数 会python的人肯定经常用range函数 比如在for循环中 几乎都用到了range 下面我们通过ra
  • 概率论中的重要不等式(Markov/Chebyshev/Jensen)

    1 Schwarz 不等式 对于任意的随机变量 和 均有 证明 假设 否则 有 所以不等式成立 我们有 即 2 Markov不等式 设随机变量 只取非负值 则对任意的 证明 固定正数 定义一个随机变量 易知 总成立 从而有
  • 1071svm函数 r语言_R语言机器学习之核心包e1071 - 数据分析

    R语言有很多包可以做机器学习 Machine Learning 的任务 机器学习的任务主要有有监督的学习方式和无监督的学习方式 有监督学习 在正确结果指导下的学习方式 若是正确结果是定性的 属于分类问题 若正确结果是定量的 属于回归问题 无
  • 软件设计模式(一)

    本章学习主要参照Datawhale开源学习及 大话设计模式 本项目结合 大话设计模式 这本书 总结了各种设计模式的基本概念 知识点和适用场景 先通过书中的案例 介绍了23种设计模式及其相关的代码示例 项目中有多种语言代码示例 本文主要采用P
  • Colorbox - a jQuery lightbox

    http www jacklmoore com colorbox http www jacklmoore com colorbox example5
  • C——结构体

    结构体 1 自定义类型 2 结构体 2 1 结构体类型说明 2 2 结构体变量的定义 2 3 结构体的初始化 2 4 结构体变量所占空间大小 2 5 结构体成员的引用 3 链表 3 1 处理动态链表所需的函数 3 2 指向自身的结构体类型