首页
学习
活动
专区
工具
TVP
发布

C/C++/数据结构/算法

专栏成员
32
文章
3036
阅读量
13
订阅数
【C语言】文件操作(1)(文件打开关闭和顺序读写函数的万字笔记)
   我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化的保存,我们可以使⽤⽂件    文件是计算机系统中的一个基本概念,它是存储在计算机上的信息集合,可以是文本文档、图片、程序等,但是在程序设计中,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类的)
TANGLONG
2024-10-20
470
【C语言】你不知道的知识小盲区——柔性数组
   也许你从来没有听说过柔性数组(flexible array)这个概念,但是它确实是存在的。在C99标准中,如果结构体的最后一个成员是数组,那么这个数组可以不指定大小,它的大小是未知的,被称为柔性数组    例如:
TANGLONG
2024-10-16
730
【C语言】动态内存管理及相关笔试题
   我们之前已经学过一些开辟内存的方法,就是创建变量时,操作系统给我们分配的空间,而内存大致分为以下3个大部分,如图:
TANGLONG
2024-10-15
830
【C语言】自定义类型:联合体和枚举
   像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以是不同的类型    联合体的特点是所有成员共⽤同⼀块内存空间,所以联合体也叫共同体,由于所有成员共用一块空间,所以编译器只为最⼤的成员分配足够的内存空间 ,并且当给联合体其中⼀个成员赋值时,其他成员的值也跟着变化,我们后面也会讲到    现在我们从联合体类型的声明开始学习,它的声明也和结构体的声明相似,结构体声明时使用struct关键字,而联合体声明时使用union关键字,如下:
TANGLONG
2024-10-15
640
【C语言】使用结构体实现位段
   在上一节中我们讲解了结构体,而位段的声明和结构是类似的,它们有两个不同之处,如下:
TANGLONG
2024-10-15
670
【C语言】自定义类型:结构体
   前⾯我们在学习操作符的时候,已经学习了结构体的基本知识,这⾥稍微复习⼀下结构体类型的声明,然后学习一些新的东西
TANGLONG
2024-10-15
1140
【C语言】数据在内存中的存储(万字解析)
   调试的时候,我们可以看到在a中的 0x11223344 这个数字是按照字节为单位,倒着存储的,这是为什么呢?这时就要引出我们的大小端字节序了
TANGLONG
2024-10-15
1000
【C语言】内存函数的使用和模拟实现
   在之前我们学习了使用和模拟实现strncpy函数,它是一个字符串函数,用来按照给定的字节个数来拷贝字符串,那么问题来了我们想拷贝的不是字符串,而是整型、浮点型的数据,该怎么办呢?    这时候就要使用我们的内存函数memcpy,mem是memory的缩写,它原本是记忆的意思,在这里是内存的意思,它的作用范围就宽泛多了,因为它是对内存块的内容进行拷贝,不管内存中存放的是什么数据类型,都可以通过拷贝内存块来实现拷贝    但是使用函数memcpy需要包含的头文件还是<string.h>,接下来我们来看看这个函数的原型:
TANGLONG
2024-10-15
970
【C语言】字符和字符串函数(2)
   我们之前学习的strcpy的作用是把源字符串拷贝到目标空间内,而且经过我们的模拟实现,我们也意识到它拷贝的时候会把目标空间的内容给替换了,我们可以来测试一下:
TANGLONG
2024-10-15
840
【C语言】字符函数和字符串函数(1)
   C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的,这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h 如下图:
TANGLONG
2024-10-15
760
【C语言】手把手带你拿捏指针(完)(指针笔试、面试题解析)
   在学习操作符的时候,我们学习了 sizeof , sizeof 计算变量所占内存内存空间大小的,单位是字节,如果操作数是类型的话,计算的是使用类型创建的变量所占内存空间的大小,它并不在意内存中存放什么数据    sizeof格式上有一个特点就是,如果计算的是变量的大小,可以省略小括号,当然还是建议都写上小括号,这样可以增加代码的可读性,现在我们使用sizeof举一下例:
TANGLONG
2024-10-15
930
【C语言】手把手带你拿捏指针(4)(含qsort函数详解)
什么是回调函数?    回调函数就是⼀个通过函数指针调用的函数。    如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发⽣时由另外的一方调用的,用于对该事件或条件进行响应    可能这么说着有些抽象,我们还是举一个例子,比如上一篇文章我们讲到的计算器,我们当时为了解决代码冗余,使用了转移表,也就是函数指针数组,那么是否还有其它方法呢?比如我坚持使用Switch语句,而不使用if语句    这个内容就涉及到我们的回调函数,回调函数简单地说就是将函数指针传给另一个函数,通过这个函数来使用传过来的函数    我们可以将之前冗余的部分包装成函数,最大的冗余就是那个Switch语句,我们来看看冗余部分:
TANGLONG
2024-10-15
900
【C语言】带你手把手拿捏指针(3)(含转移表)
   在指针的类型中我们知道有⼀种指针类型为字符指针 char* ,⼀般使⽤的方式如下:
TANGLONG
2024-10-15
840
【C语言】手把手带你拿捏指针(2)(含冒泡排序)
    这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,⽽且是数组⾸元素的地址,我们来做个测试
TANGLONG
2024-10-15
850
【C语言】手把手带你拿捏指针(1)(初始指针)
在讲内存和地址之前,我们想有个⽣活中的案例:     假设有⼀栋宿舍楼,把你放在楼⾥,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩,如果想找到你,就得挨个房⼦去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如:
TANGLONG
2024-10-15
890
【C语言】操作符详解2(含结构体、整型提升、算术转换)
    可以有n个表达式,中间由逗号隔开,它的特点就是每一个表达式都要进行运算,但是整个逗号表达式的结果是最后一个表达式的结果,如图下代码:
TANGLONG
2024-10-15
1570
【C语言】操作符详解1(含进制转换,原反补码)
    上述的操作符,我们已经讲过算术操作符、赋值操作符、逻辑操作符、条件操作符和部分的单⽬操作符,今天继续介绍⼀部分,操作符中有⼀些操作符和⼆进制有关系,我们先铺垫⼀下⼆进制的和进制转换的知识
TANGLONG
2024-10-15
1140
【C语言】手把手带你实现扫雷进阶(1)(接上回基础版扫雷,附上源码)
    要注意的一点是选择游戏难度以目前我们讲过的内容还暂时写不出来,在后面学习到相关内容时,我们再进行讲解,接下来就解决后三个问题     我们的进阶还是在之前写过的基础版之上添加,如果还没有看过之前基础版,可以在我的主页查看,现在我们开始通过我们学过的知识解决这三个进阶需求
TANGLONG
2024-10-15
860
【C语言】函数递归(含扫雷进阶思路)
    递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?     递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。 写⼀个史上最简单的C语⾔递归代码:
TANGLONG
2024-10-15
1020
【C语言】手把手带你实现控制台小游戏扫雷(附源码)
    使⽤控制台实现经典的扫雷游戏 (1)游戏可以通过菜单实现继续玩或者退出游戏 (2)扫雷的棋盘是9*9的格⼦ (3) 默认随机布置10个雷 (4)可以排查雷     ◦ 如果位置不是雷,就显⽰周围有⼏个雷     ◦ 如果位置是雷,就炸死游戏结束     ◦ 把除10个雷之外的所有⾮雷都找出来,排雷成功,游戏结束
TANGLONG
2024-10-15
1440
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档