c语言
文章平均质量分 90
bruin_du
一生也在进取
展开
-
结构体进阶(深入理解:内存对齐,位段,枚举,联合)
☀️写在前面本篇文章主要讲解结构体的内存对齐知识和其他几种自定义类型的使用和特点,内存对齐部分较难,建议可以仔细阅读,好好消化。如果需要学习结构体的基础知识,下面的传送门已为您打开????。????结构体初阶传送门????文章目录1️⃣结构体内存对齐为什么存在内存对齐内存对齐如何计算设计结构体的技巧修改默认对齐数2️⃣位段什么是位段?位段大小的计算位段的内存分配位段的跨平台问题位段的应用3️⃣枚举枚举的定义枚举的优点枚举的使用4️⃣联合(共用体)联合类型的定义联合的特点联合大小的计算1️⃣结构体内存原创 2021-10-31 08:42:33 · 970 阅读 · 5 评论 -
指针进阶(深入理解:函数指针&回调函数)
本篇文章主要讲解函数指针和回调函数的理解和使用,属于较难的指针指针知识。如果想要学习指针简单和数组的相关知识,可以进入下面的传送门。????指针初阶知识传送门????☀️数组知识传送门☀️下来就是文章内容了,端上小板凳开始阅读吧 ????文章目录字符指针函数指针函数指针数组回调函数指针笔试题(夯实基础)原创 2021-10-28 14:35:06 · 2541 阅读 · 18 评论 -
整型、浮点型在内存中的存储
一、数据类型在c语言中有整型、浮点型、构造类型、指针类型等。而类型的意义在于:使用不同的类型决定了开辟空间的大小决定了如何使用内存空间二、整型在内存中的存储知道了一个变量的类型,就知道可以开辟的空间的大小。那例如int型具体是如何在内存中进行存储的呢?需要了解下面的概念:1.原码、反码、补码计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位三种表示方法各不相同。原码直接将二进制按原创 2021-09-27 20:20:34 · 1683 阅读 · 24 评论 -
结构体的基础和使用
文章目录结构体类型的声明结构体变量的定义和初始化结构体成员的访问结构体传参结构体类型的声明结构体的基础知识数组是一组相同类型元素的集合.结构体是一些值的集合,这里面包含数组,而这些值称为成员变量。结构的每个成员可以是不同类型的变量。成员可以是标量、数组、指针,甚至是其他结构体。结构体的声明结构体内部必须得要一个成员struct tag{ member_list;//成员列表}variable_list;//变量列表例如描述一个学生的结构体:struct Stu{ ch原创 2021-09-13 21:49:52 · 760 阅读 · 1 评论 -
c语言—指针详解
文章目录一、指针是什么二、指针和指针变量1.左值与右值2.两者的区别1.指针2.指针变量3.如何使用三、指针和指针类型一、指针是什么指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。指针就是地址,地址就是指针。使用指针的目的是提高使用效率二、指原创 2021-08-04 17:54:09 · 24241 阅读 · 1 评论 -
深入理解隐式类型转换
文章目录一、隐式类型转换1.转换的原因2.转换的意义3.如何进行转换4.整型提升的例子二、算术转换1.如何进行转换2.例题3.总结三、操作符的属性1.操作符2.问题表达式一、隐式类型转换1.转换的原因C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。2.转换的意义表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CP原创 2021-08-01 15:46:11 · 9235 阅读 · 1 评论 -
【c语言】操作符详解
分类:文章目录算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式特殊操作符算术操作符操作符功能+加-减*乘/除%取余(两个整数)除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。%操作符的两个操作数必须为整数。返回的是整除之后的余数。移位操作符操作符功能<<左移原创 2021-07-31 17:26:15 · 398 阅读 · 2 评论 -
c语言—数组详解(建议收藏)
文章目录一、一维数组1.一维数组的创建和初始化(1).数组的创建(2).数组的初始化2.一维数组的使用3.一维数组在内存中的存储二、二维数组1.二维数组的创建和初始化(1).二维数组的创建(2).二维数组的初始化2.二维数组的使用3.二维数组在内存中的存储三、数组作为函数参数1.一维数组2.二维数组四、数组指针和指针数组1.指针数组2.数组指针一、一维数组1.一维数组的创建和初始化(1).数组的创建数组是一组相同类型元素的集合。 数组的创建方式:type_t arr_name [const原创 2021-07-06 21:33:19 · 149851 阅读 · 54 评论 -
c语言—实现扫雷游戏
文章目录什么是扫雷游戏一、实现思路二、头文件三、主函数文件1.菜单函数2.主函数三、游戏文件1.地图初始化2.展示地图3.埋雷函数4.判断该位置附近雷的个数5.主游戏函数四.代码运行展示1.开始界面2.游戏开始3.游戏结束五、游戏原码什么是扫雷游戏基于百度百科的解释为:《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。一、实现思路扫雷的地图大小不定,埋的雷个数也不一定。地图越大,雷的个数越多越原创 2021-07-01 21:18:41 · 470 阅读 · 15 评论 -
c语言—实现三子棋
什么是三子棋基于百度百科的解释为:是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时候会出现和棋的情况。具体实现一、实现思路三子棋一共有九个可以落子的空间,所以用二维数组比较方便。后面每一步进行后都通过数组保存状态,最后判定数组里的棋子情况便可知晓玩家输赢。使用多文件能够比较好的实现解耦,调用起来比较方便,同时也很好维护。头文件:在头文件中对三子棋原创 2021-06-02 15:44:18 · 260 阅读 · 6 评论 -
c语言—函数以及递归
函数是什么数学中我们常见到函数的概念。但是你了解C语言中的函数吗? 百度百科中对函数的定义:C程序是由一组变量或是函数的外部对象组成的。函数是一个自我包含的完成一定相关功能的执行代码段。我们可以把函数看成一个“黑盒子”,你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的,外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。打个比方来理解函数:在一个饭店里面,顾客点了一盘菜后,服务员把该菜的名字给原创 2021-05-26 21:29:31 · 1072 阅读 · 27 评论 -
c语言—分支语句和循环语句详解
文章目录什么是语句分支语句一、if语句1.语法结构2.悬空else二、switch语句1.语法结构2.default语句循环语句一、while循环1.语法结构2.break在while循环中的作用3.continue在while循环中的作用二、for循环1.语法结构2.while循环与for循环比较3.break和continue在for循环中三、do...while循环1.语法结构2.do语句的特点3.do while循环中的break和continue什么是语句c语言中由一个分号;所隔开的就是一条语原创 2021-05-25 21:45:50 · 492 阅读 · 6 评论 -
指针和指针变量的区别
首先引入一些概念内存内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小都是一个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。为什么存在地址?为了提高效率,快速标识与定位。左值与右值 空间 对应 左值 例:(对a来说) a = 20; //当把值赋给a时,是给a的空间写入20。 内容 对应 右值 例:(对a来说)原创 2021-05-13 00:08:35 · 9413 阅读 · 8 评论