C语言(从入门到熟练掌握)
文章平均质量分 80
C语言是一种广泛使用的编程语言,它具有高效、简洁、可移植等优点,被广泛应用于操作系统、驱动程序、嵌入式系统、网络编程、游戏开发等领域。本专栏旨在介绍C语言的基础知识、语法规则、标准库函数以及常用的开发工具,帮助读者掌握C语言的基本语法和编程技巧,提高编程能力和实践能力。
小白苦学IT
Practice the code hard, hoping to get my own offer.
展开
-
完全二叉树——堆的概念及实现
堆(heap):是堆内存的简称,堆是动态分配内存,内存大小不固定,也不会自动释放,堆——数据结构是一种无序的树状结构,同时它还满足key-value键值对的存储方式。通过本次堆的实现,加深了对堆这个结构的认识,同时了解了堆的实际应用——1.堆排序和2.TOP-K问题。原创 2023-05-24 23:17:39 · 1101 阅读 · 3 评论 -
温故c语言——深度剖析数据在内存中的存储
/在内存中占用空间的大小 char //字符数据类型 占用1个字节 short //短整型 占用2个字节 int //整形 占用4个字节 long //长整型 占用4个字节 long long //更长的整形 占用8个字节 float //单精度浮点数 占用4个字节 double //双精度浮点数 占用8个字节使用这个类型开辟内存空间的大小(大小决定了使用范围)。如何看待内存空间的视角。大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;原创 2023-04-18 17:26:02 · 816 阅读 · 47 评论 -
函数栈帧的创建和销毁(带你进一步深入理解函数的执行流程)
我们在写C语言代码的时候,经常会把一个独立的功能抽象为函数,所以C程序是以函数为基本单位的。那函数是如何调用的?函数的返回值又是如何待会的?函数参数是如何传递的?这些问题都和函数栈帧有关系。函数参数和函数返回值临时变量(包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)保存上下文信息(包括在函数调用前后需要保持不变的寄器)。栈(stack)是现代计算机程序里最为重要的概念之一,几乎每一个程序都使用了栈,没有栈就没有函数,没有局部变量,也就没有我们如今看到的所有的计算机语言。原创 2023-04-16 15:50:30 · 433 阅读 · 74 评论 -
c语言数据结构——树形结构之树和二叉树
二叉树有什么用?二叉树应用非常广泛。在操作系统源程序中,树和森林被用来构造文件系统。我们看到的window和linux等文件管理系统都是树型结构。在编译系统中,如C编译器源代码中,二叉树的中序遍历形式被用来存放C 语言中的表达式。其次二叉树本身的应用也非常多,如哈夫曼二叉树用于JPEG编解码系统(压缩与解压缩过程)的源代码中,甚至于编写处理器的指令也可以用二叉树构成变长指令系统,另外二叉排序树被用于数据的排序和快速查找。原创 2023-04-09 23:43:57 · 1242 阅读 · 35 评论 -
C语言数据结构——线性表之栈和队列
为什么会定义栈和队列这两种数据结构呢?原因在于:之所以会定义栈和队列这样的数据结构是因为他们有两大特性他们可以保存程序运行路径中各个点的信息,以便用于回溯操作或其他需要访问已经访问过的节点信息的操作。比如: 栈用于解决迷宫问题,就是用到了若线路不通,需要回溯到已访问过的结点,从那个结点再做一次与这次路径不同的选择。先进后出 和 先进先出的 次序先进后出次序 其实就是一种将序列反序操作的次序先进先出次序 其实就是一种将序列顺序操作的次序。原创 2023-04-07 22:36:47 · 747 阅读 · 29 评论 -
c语言数据结构——链表的实现及其基本操作
顺序表的问题及思考中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。思考:如何解决以上问题呢?下面我们给出了链表的结构,让我们来看看吧。原创 2023-04-06 14:39:22 · 3606 阅读 · 20 评论 -
程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。语法:举个栗子:#define reg register //为 register这个关键字,创建一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把 break写上。原创 2023-04-05 00:18:39 · 215 阅读 · 20 评论 -
c语言文件操作详解
磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。原创 2023-04-02 22:32:00 · 472 阅读 · 19 评论 -
c语言数据结构——顺序表及其基本操作
本文介绍了顺序表的定义和常见操作并使用C语言代码对其进行实现。顺序表是在计算机内存中 以数组的形式保存的线性表 ,线性表的顺序存储是指用一组地址连续的存储单元 依次存储线性表中的各个元素 、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。原创 2023-03-23 22:47:41 · 179 阅读 · 7 评论 -
用动态内存管理知识基于静态通讯录实现动态通讯录
c语言静态通讯录转动态通讯录的灵活实现原创 2023-03-23 21:40:22 · 82 阅读 · 3 评论 -
c语言——通讯录程序
我通过自定义结构类型这一章的学习,为了巩固自己对着一章内容是否总结到位,写下了一个通讯录程序。实现该程序的步骤如下:通讯录通讯录中能够存放1000个人的信息每个人的信息: 名字+年龄+性别+电话+地址增加人的信息删除指定人的信息查找指定人的信息排序通讯录的信息修改指定人的信息打印通讯录信息。原创 2023-03-18 23:22:41 · 842 阅读 · 6 评论 -
c语言常见字符串函数的使用和模拟实现
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串 中或者 字符数组 中。字符串常量 适用于那些对它不做修改的字符串函数.1.1 strlen1.3 strcat1.4 strcmp1.8 strstr1.9 strtok字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。参数指向的字符串必须要以 ‘\0’ 结束。原创 2023-03-15 23:46:05 · 177 阅读 · 11 评论 -
c语言猜数字,三子棋,扫雷游戏的实现
在我们学习了c语言到一定程度的时候,是不是有想过学的这些除了刷题还能干嘛呢?当然,现在是互联网信息特别发达,我见过比较多的都是会对游戏有一定的兴趣吧!我们一般情况下呢都是玩的别人开发出来的游戏,那我们有没有想过有一天我们能自己开发一些通过自己编程写出来的一些小游戏呢?相比如果你能自己写出来肯定会觉得自己有那么一点小小的成就感,哈哈哈哈哈,不错,我就是学会了忍不住想要跟大家分享一下这些小游戏。原创 2023-03-02 00:05:04 · 387 阅读 · 6 评论 -
c语言——qsort函数的使用以及使用冒泡排序思想模拟实现qsort函数
我们通过上述已经知道了qsort是怎么使用的,那么我相信小伙伴们肯定对他的实现方法非常好奇,为什么它可以对这么多种类型的数据排序呢?相比你肯定很想知道吧,那就让我们来模拟一下。找到这之后我们能知道qsort的基本用法,如果实在不知道这些英文什么意思,我们可以借助一些翻译软件进行翻译,以便更容易了解。在这里我们先了解一下qsort 快排的使用方法,我们可以利用c++类似图书馆的一个网站来查询我们想要用到的函数。好了,讲到这里,我们就写一下我们的代码实现一下吧。让我们继续向我们的IT生涯前进吧,加油冲冲冲!原创 2023-02-27 23:39:41 · 124 阅读 · 6 评论 -
c语言指针进阶——详解
数组指针是能够指向数组的指针//这里的p就是一个数组指针 return 0;解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为20个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。这里要注意:[ ]的优先级要高于号的,所以必须加上()来保证p先和结合。原创 2023-02-25 21:56:50 · 350 阅读 · 1 评论 -
c语言操作符解析
逻辑反操作 - 负值 + 正值 & 取地址sizeof 操作数的类型长度(以字节为单位)~ 对一个数的二进制按位取反 -- 前置、后置 -- ++ 前置、后置 ++ * 间接访问操作符(解引用操作符)(类型) 强制类型转换。原创 2023-02-16 15:16:28 · 122 阅读 · 8 评论