![](https://img-blog.csdnimg.cn/20201025181911935.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 97
作为一个新手,记录一下我在学C过程中认为重要的内容或感悟~
辣椒油li
这个作者很懒,什么都没留下…
展开
-
C语言学习记录(五)——作用域和存储类标识,快速看懂静态变量、外部变量、局部变量
学习足迹前言一、基于作用域划分的变量类型二、三大存储类标识1.外部(extern)变量2.静态(static)变量3. auto变量三、静态变量、外部变量、局部变量的用法1. 文件级静态变量2. 全局变量(外部变量)使用方法3. 函数级静态变量4. 函数级局部变量总结前言作用域是在任何一种程序语言中都不可忽视的概念,只有清楚地知道每种变量的作用域,了解它们在什么时候被创建和释放,才能完成一个正确的算法。本文将用简洁的逻辑,介绍C语言中基本的作用域概念和常用的存储类标识,希望能帮助大家理清静态变量、外部原创 2021-03-05 09:54:47 · 1135 阅读 · 1 评论 -
C语言小知识——大顶堆的实现
文章目录前言一、存储结构1.一维数组存储2.堆的初始化二、入堆操作1.入堆算法(上浮)2.代码实现二、出堆操作1.出堆算法(下沉)2.代码实现三、获得堆顶值总结前言大顶堆是一种常见的可排序数据结构,可视化出来的样子就是一颗完全二叉树,如下图:其特点是根节点的值一定大于其左右子节点,因此树根元素是整棵树中的最大值。如此每次取出堆顶元素,就是取出了一组数中最大值,有排序的作用。对于大顶堆有两个基本操作:入堆、出堆;这两个操作中都要保证在操作完成时仍要保持大顶堆的基本特点,即根节点的值一定大于其左右子原创 2020-12-30 11:35:00 · 1370 阅读 · 0 评论 -
C语言小知识——math中的基本数学函数
文章目录一、math.h二、常用函数举例求绝对值求两者中最大/小值求指数/对数等三、函数名中的规律一、math.h这篇博文记录一下C语言中常用的一个数学函数库,里面涵盖了常用的数学运算,包括对实数及虚数的运算,如求绝对值、三角函数、两数中最大数等。使用时在程序开始处加入:#include <math.h>库中的函数用法都很简单,传入的参数一般都是实数或虚数,包括整型、double、long double、float型等,因此不详细介绍其用法,只是列举一些常用函数。math中包括很多函数原创 2020-12-24 17:47:45 · 19470 阅读 · 2 评论 -
C语言小知识——循环队列
文章目录前言一、循环队列的直观印象二、“双指针+数组”实现循环队列1.初始化2.入队3.出队4.队列长度三、队空与队满的判断1.队空判断2.队满判断总结前言在算法中,队列是个常用的数据类型,具有先进先出的存储特点。在python中我们直接调用 collections.deque() 就可以构建一个队列,那么在C语言中,该如何简单地实现一个队列呢?一、循环队列的直观印象为了节省内存空间,C中的队列要用循环队列实现,它可以循环使用位置存放数据。以此实现新入队的数据,直接覆盖前面已出队的无用数据。 而原创 2020-11-05 21:51:23 · 1637 阅读 · 0 评论 -
C语言小知识——uthash使用
文章目录一、uthash是什么?二、基本hash用法1.添加头文件2.创建键-值对结构3.查找元素 HASH_FIND_INT4.插入元素 HASH_ADD_INT5.统计元素个数 HASH_COUNT6.循环表中元素 HASH_ITER总结一、uthash是什么?在使用python时我们常常会使用字典来进行数据检索,这个字典实际就是哈希表,通过key值来进行唯一检索。那么,在C语言中,我们应该如何实现哈希表呢?当哈希表中元素比较简单时,我们可以直接构造一个数组,把下标看作key值,value值就是原创 2020-10-29 09:26:10 · 12106 阅读 · 11 评论 -
C语言小知识——qsort函数
文章目录一、qsort函数声明1.函数声明2.参数含义二、qsort函数用法1.构造compare函数2.数组元素也是数组?总结一、qsort函数声明qsort是C中自带的快速排序函数,属于标准库<stdio.h>,在做算法题时会比较常用。本文参考菜鸟教程。1.函数声明void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))2.参数含义base:原创 2020-10-26 09:59:15 · 1717 阅读 · 7 评论 -
C语言学习记录(四)——指针!不要怕它!
学习足迹前言一、指针和数组1.代表数组的指针2.指针表示多维数组二、指针和函数总结前言C语言中的指针一直是我最怵的地方,它有很多种用法,总是让人搞不清楚。其实只要我们用正常的方式使用指针,它就没那么难以理解。我认为理清指针含义的好方式是将其和数组进行比较,理解它和数组在使用时的关系。参考及引用:笨办法学C一、指针和数组指针的基本概念:指针是指向了计算机中的某个地址,这个地址里存放着一个特定类型的数据。指针本身的值就是一个地址值,它指向的这个地址中的内容才是数据。指针的通常用法:type原创 2020-10-22 16:46:50 · 5895 阅读 · 19 评论 -
C语言学习记录(三)——Switch、函数定义
学习足迹前言一、switch用法1.使用语法2.原理二、函数定义及声明1.定义语法2.提前声明总结前言这一节简单地介绍C中两个基础语法 1. if…else…的替代方法:switch…case… 2. 函数function的定义及声明一、switch用法swich是一种选择语法1.使用语法2.原理二、函数定义及声明1.定义语法代码如下(示例):2.提前声明代码如下(示例):data = pd.read_csv( 'https://labfile.oss.aliyun原创 2020-10-12 09:52:44 · 17807 阅读 · 9 评论 -
C语言学习记录(二)——字符串、字符数组
学习足迹前言一、printf基本用法二、字符串和字符数组1.引入库2.读入数据总结前言在本文中我们继续C语言基础的学习,首先要接触的就是变量的种类和定义的方法。常用的变量类型包括整型(int, long int, long long int, unsigned int等,区别在于变量所占位数)、浮点型(float, double)、字符型(char)。其中long、short、signed、unsigned都是修饰。在不同的CPU和编译器上,变量类型所对应的变量长度也不相同,如下表(表示GCC编译原创 2020-09-29 18:13:43 · 772 阅读 · 3 评论 -
C语言学习记录(一)——工具选择
学习足迹前言一、环境准备1. 操作系统2. 编译器3. 文本编辑器二、Make、Makefile1. C程序的运行?2. Make的进阶三、初遇Valgrind1. 安装Valgrind2. 使用方法总结前言今天开始自学C语言,希望不要半途而废!不论是人类语言还是机器语言,语言都是一个需要多练习的东西。因此学习过程中要拿着编辑器边写代码、边运行,边学习。因此环境的选择和搭建十分重要。我的参考内容是一位博友推荐的笨方法学C。因此环境及工具的选择和书中一致。一、环境准备首先选择操作系统,再安装学习原创 2020-09-27 22:07:25 · 429 阅读 · 0 评论