C语言学习打卡
文章平均质量分 90
C语言语法基础
忆梦初心
这个作者很懒,什么都没留下…
展开
-
【C语言】关于文件操作你知多少?
C语言提供了许多文件读写函数供我们对文件进行操作。我们可以将程序的数据保存在磁盘当中,也可以读取文件的内容到我们的程序中。本文不仅介绍了文件的基本概念和C语言文件操作的方式,还对一些文件操作的细节和易错点进行了详细讨论。感兴趣的小伙伴可以看看,相信一定会有所收获。原创 2023-04-09 20:16:48 · 1468 阅读 · 80 评论 -
【C语言】你真的了解结构体吗
我们知道C语言中存在着整形(int、short...),字符型(char),浮点型(float、double)等等内置类型,但是有时候,这些内置类型并不能解决我们的需求,因为我们无法用这些单一的内置类型来描述一些复杂的对象,如一个学生,一本书等等。出于这个原因,C语言还给我们提供了一些自定义的数据类型使我们可以自己来构建类型,如结构体、枚举、联合体。其中最常使用的就是我们本期的主题:结构体。原创 2023-03-21 13:04:57 · 4320 阅读 · 91 评论 -
【C语言】字符串函数和内存函数
🌸在我们编写C程序时,除了使用自定义函数,往往还会使用一些库函数,例如标准输入输出函数字符串函数strlen,内存函数memset等等,使用这些系统自带的库函数可以轻松地帮我们实现预期的功能,大大提升我们编程的效率。1.本期我们将介绍库里面一些常见的字符串函数以及内存函数。2.本期的目标时在学会使用这些库函数的同时了解其内部原理,并学会模拟实现相应的函数。温馨提示:可以使用目录跳转到对应函数以上我们只是将一些常见的字符串函数及内存函数进行列举分析。原创 2023-03-16 21:10:49 · 1189 阅读 · 73 评论 -
【C语言】深度理解指针(中)
✈上回说到,我们学习了一些与指针相关的数据类型,如指针数组,数组指针,函数指针等等,我们还学习了转移表的基本概念,学会了如何利用转移表来实现一个简易计算器。【C语言】深度理解指针(上)本期我们将继续指针的话题,学习有关回调函数的相关内容,以及分析一些与指针相关的常见笔试题。事不宜迟,让我们进入今天的第一个主题----回调函数。首先,回调函数是什么意思呢?👇回调函数就是一个通过函数指针调用的函数。原创 2023-03-12 21:09:52 · 1732 阅读 · 76 评论 -
【C语言】深度理解指针(上)
🌊谈到指针,想必大家都不陌生。它不仅是C语言的重难点,还是不少C初学者的噩梦。本期我们将深度探讨一些较为复杂的指针以及指针的妙用,带领大家感受指针的魅力😝。首先,我们先来复习复习指针的概念1. 指针就是地址,而指针变量是个变量,用来存放地址(指针),地址标识着一块唯一的内存空间。例如有一张纸,上面写着湖滨东路12号,那湖滨东路12号是什么呢?它就是一个地址,一个指针;而这个地址的载体纸便是指针变量,修改纸上的内容就相当于修改了指针变量存放的内容,即修改了指针。2. 指针的大小是固定的。原创 2023-03-03 09:55:28 · 2113 阅读 · 88 评论 -
VS实用调试技巧
🐛Bug一词的原意是虫子,而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它"bug"。这是为什么呢?这就要追溯到一个程序员与飞蛾的故事了。Bug的创始人格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug” 这名字,正是由赫柏所取的。1947年9月9日,赫柏对Harvard Mark II设置好17000个继电器进行编程后,技术人员正在进行整机运行时,它突然停止了工作。原创 2023-02-17 13:31:46 · 4017 阅读 · 77 评论 -
深入理解可变参数列表
在C语言中,对于一般的函数而言,参数列表都是固定的,而且各个参数之间用逗号进行分开。而除了这些函数外,还有些函数的参数列表是不固定的,例如我们常用的printf()函数,会根据我们传入的参数个数来调整最终打印的个数。本期我们会从宏观到微观从如何使用可变参数列表到可变参数列表实现原理来理解可变参数列表。符号及使用说明定义可以访问可变参数部分的变量,实际上是个char*类型使arg指向可变参数部分(通过压栈的特点)通过指针的方式得到参数,int表示每次arg向后读取4个字节。原创 2023-01-17 12:51:40 · 1047 阅读 · 24 评论 -
C语言之函数栈帧(动图详解)
C程序在调用函数时,会先在栈上给函数预先开辟一个足够的空间,后续函数中的内容,如非静态局部变量,返回值等都会保存在这段空间中。这段空间就叫栈帧。当函数调用时,就会形成栈帧;当函数返回时,栈帧也会被释放。所谓释放,是指将某段空间设置为无效,使得可以被覆盖,而并非清空。本文将采用汇编+动图的角度带大家了解栈帧的形成和释放过程原创 2023-01-13 19:27:37 · 4099 阅读 · 21 评论 -
C程序地址空间
在C语言中,每个C程序加载进内存时,操作系统都会给它分配虚拟地址空间,一般大小为4G,地址空间分为代码区,字符常量区,已初始化全局变量区,未初始化全局变量区,堆区和栈区 。如下图所示,其中堆栈相对而生原创 2023-01-12 11:28:21 · 650 阅读 · 0 评论 -
C语言学习之预处理
我们用C语言直接写出来的代码是不能被计算机进行识别的,这其中需要进行一系列过程使源码转换成计算机所能识别的二进制语言,这一系列过程就叫做翻译。源码翻译过程主要有四步:预处理头文件展开去注释宏替换条件编译等编译:将C语言翻译成汇编语言汇编:将汇编语言转化为可重定向目标文件(可被链接,已经是二进制,但不是可执行文件)链接:自身程序+库文件进行关联,形成可执行程序本篇文章我们就来谈谈预处理这个环节,并了解如何定义宏,如何进行条件编译。在C语言中,我们通常使用。原创 2023-01-10 13:53:11 · 2881 阅读 · 18 评论 -
C语言学习之取整取余
对于取整,在数学中我们最常见的作法就是四舍五入取整。而在C语言中,我们则是直接通过取整数部分,舍弃小数部分的方式进行取整。那么,所有语言的取整方式是相同的吗?而对于取余,我们可能经常会听到取余取模这两种说法,它们都表示求余数。那么,取余和取模真的是一样的概念吗?所有语言的取余(取模)结果都是相同的吗?相信通过本文,读者可以对取整取余有更深刻的了解!1.并非所有语言的取整方式都是一样的,如C语言和Jave使用的是向零取整,而Python使用的是向负无穷取整。原创 2023-01-06 19:38:25 · 20487 阅读 · 9 评论 -
C语言学习之位运算
程序中的所有数在计算机内存中都是以二进制补码的形式储存的。而位运算,就是对这些数在内存中的二进制位进行操作。位操作符功能&按位与|按位或^按位异或按位右移~按位取反注:上述位操作符只能用于整形操作数位操作主要用于对某个比特位的设置或者比特位的打印,多用于单片机和嵌入式开发中对寄存器的操作以上,就是本期的全部内容。原创 2023-01-04 21:08:59 · 1641 阅读 · 3 评论 -
C语言学习之volatile
volatile被称作易变关键字,作用是告诉编译器这个变量可能被修改,需要每次都从内存中访问这个变量,达到稳定访问内存。原创 2023-01-02 20:06:52 · 2548 阅读 · 2 评论 -
C语言学习之const
1.const修饰的变量,不可直接被修改,可以间接修改(使用指针)。2.const修饰的变量,本质是变量,只是具有了常属性。无论是const修饰函数参数还是修饰返回值,都可以避免重要数据被无意间更改,导致程序出错。const修饰指针变量遵循"就近原则"。以上,就是本期的全部内容。原创 2022-12-31 18:05:56 · 2489 阅读 · 0 评论 -
C语言学习之void关键字
1.如果函数没有返回值要声明为void类型,提高代码可读性,避免混淆2.如果函数没有参数,则应声明参数为void类型,更加严谨1.void*可以被任何类型的指针接收,void*也可以接收任何类型的指针。因此void*也可以称为万能指针。2.对void指针进行算数运算或对其内容进行操作时,需先将其强制类型转换为特点的数据类型。以上,就是本期的全部内容。原创 2022-12-30 00:35:20 · 13736 阅读 · 9 评论 -
C语言字符型变量的存储和取值
字符型变量的存储和取值原创 2022-12-27 13:21:16 · 2702 阅读 · 2 评论 -
C语言学习之static
static关键字原创 2022-12-09 13:21:23 · 766 阅读 · 1 评论 -
C语言学习之extern关键字
extern关键字的使用原创 2022-12-07 14:43:52 · 11547 阅读 · 5 评论 -
C语言学习之sizeof与strlen
sizeof与strlen的使用原创 2022-12-05 22:12:50 · 6580 阅读 · 6 评论 -
C语言中的转义字符
转义字符原创 2022-12-03 18:16:11 · 2069 阅读 · 0 评论 -
C语言中double与float的比较
浮点数的精度问题原创 2022-12-02 18:26:05 · 1800 阅读 · 2 评论 -
键盘敲烂,力夺大厂offer
小白的成长第一步原创 2022-12-02 12:08:19 · 776 阅读 · 0 评论