C语言学习
文章平均质量分 67
记录自己学习C语言的一些过程
永不秃头的程序员
永远相信美好的事情即将发生
展开
-
C语言中常用的sscanf函数
sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。sscanf遇到 空格 就会返回 (\n 也同样会返回 \n 之前的字符)还有很多用法大家可以去百度下,这里只是做一些简单的总结。可以看到这里因为一些不同的格式,会导致一些不同的结果。这里面不同的位置加数字会有不同的结果。其余的符号并不会返回(我只验证常用的,不包括所有)需要注意的是 不同的格式之间需要用 空格 隔开。原创 2023-12-22 11:44:15 · 682 阅读 · 0 评论 -
C语言的参数传递
所以我们这里的transfer_function 函数虽然传递的是数组名,但是实际上就是传递的一个指针。这个也是内核中常用的i2c发送数据的一个方法,可能不同之处在于封装,有的平台会封装i2c发送数据的长度。这里需要注意的是 C语言中,数组名实际上是一个指向数组首元素的指针。每个数据都能都读出来。原创 2023-12-22 10:35:54 · 392 阅读 · 0 评论 -
芯片IC的mask位置
记录mask相关的笔记原创 2023-11-10 09:45:28 · 327 阅读 · 0 评论 -
c语言的scanf错误问题记录
记录一个小错误原创 2023-11-01 09:39:44 · 408 阅读 · 0 评论 -
C语言的const函数修饰指针
记录const修饰指针的一些知识原创 2023-10-26 15:50:22 · 80 阅读 · 0 评论 -
C语言 sizeof 函数内部进行计算
sizeof的一些知识点原创 2023-10-25 15:06:10 · 776 阅读 · 0 评论 -
leecode学习(1)
leecode刷题记录原创 2023-09-01 15:39:35 · 172 阅读 · 0 评论 -
一些指针的练习题
一些指针的练习题。原创 2023-09-01 11:36:36 · 590 阅读 · 0 评论 -
关于C语言参数传递的
因为C语言参数传递是整体传递原创 2023-09-01 10:15:28 · 160 阅读 · 0 评论 -
for循环顺序讲解
因为今天查看代码的时候突然发现一个有意思的东西,那就是for循环调用的顺序,他的执行顺序是什么,后面查看后明了,做一个笔记用作自己记录学习。原创 2022-06-06 09:56:29 · 2067 阅读 · 1 评论 -
C语言学习之回调函数的简单运用
文章目录一、什么是回调函数二、简单的回调函数三、带参数的回调函数一、什么是回调函数因为在程序中,我们有很多的库函数,我们也有很多的上层函数,为了增加程序的灵活性,我们就将一些函数指针作为参数传递到函数里面去。说的粗糙一点,就是将一个函数作为另一个函数的函数参数。调用回调函数我们需要一个中间函数进行过渡。这个中间函数的参数是一个函数指针。二、简单的回调函数我们来写一个简单的例子,帮助我们理解:#include <stdio.h>/*回调函数1*/void callBack1(原创 2021-09-20 16:23:58 · 324 阅读 · 0 评论 -
C语言学习——进制间的转换
文章目录一、二进制二、八进制三、十进制四、十六进制五、进制间的总结六、进制间的转化6.1.1、10进制转2进制一、二进制原理:遇2进一。二进制里面看不到2;数字进制00000 000010000 000120000 001030000 001140000 010050000 010160000 011070000 011180000 100090000 1001每个数字称为 1 bit二、八进制原原创 2021-09-17 00:45:23 · 244 阅读 · 0 评论 -
C语言学习之单链表整合
文章目录一、单链表的实现1.1链表的节点1.2 堆内存的使用一、单链表的实现1.1链表的节点节点里面有两个区域,一个数据域,一个指针域。struct node{ int data; //数据域,可以再加数据以及数据类型。 struct node *next; //指向下一个节点的指针};struct node只是一个结构体,不占用内存,本身也没有变量生成。只是一节点的模板,在以后实际需要中直接调用这个模板。1.2 堆内存的使用为什么要用堆内存,前面关于内存的时候说过,堆的内存原创 2021-09-17 00:25:59 · 420 阅读 · 0 评论 -
常用的一些缩写
文章目录一、什么是API二、什么是demo三、什么是GUI四、什么是IDE因为自己知道这是什么,可是第一次面试的时候因为紧张给搞忘了,嗯嗯啊啊的也没说出个啥,所以写一下文章,增加一些记忆。一、什么是API通俗的来说:API就是别人写好的程序,让你直接用的程序,就是API。举个例子:你用过那些API:printf(); 这个是最基本的函数,因为他有头文件<stdio.h>,可能在以后的程序里面有一些高级一点的,包括fopen();fwrite();memset();等等这些。二、什么原创 2021-06-21 23:52:49 · 294 阅读 · 0 评论 -
C语言面试总结
文章目录1、程序编译的过程2、const和define的区别3、static的作用4、volatile的作用5、对寄存器进行操作6、无符号数的判断7、引用和指针的区别8、数组和指针的关系9、静态库和动态库的区别10、怎么去判断一个占用的大小11、大端和小端之间的区别12、程序的四个区域13、什么是平衡二叉树14 、数组与链表的区别15、什么是内存泄漏,如何解决16、结构体大小的计算1、程序编译的过程2、const和define的区别#define是在编译的预处理阶段起作用(在预处理阶段进行替换)。原创 2021-06-21 23:36:57 · 2158 阅读 · 0 评论 -
C语言学习之位操作
文章目录一、位操作符号1.1 位与 &1.1.1 逻辑与和位与的区别1.2 位或 |1.3 位取反 ~1.3.1 规律1.4 位异或 ^1.5 左右位移二、位与位操作2.1 寄存器操作的要求2.2 特定位置清零2.3 特定位置置1三、一、位操作符号1.1 位与 &位与操作符号是一个 &、两个 && 是逻辑与。真值表:1 & 0 = 0; 1 & 1= 1; 0 & 0 = 0; 0 & 1 = 0;只有两个都是1的情况下才能是原创 2021-08-06 23:15:46 · 2104 阅读 · 2 评论 -
C语言学习之内存管理
文章目录一、内管理之结构体1.1 最简单的数据结构之数组1.2 数组的优势和劣势1.3 结构体的由来二、内存管理之栈2.1 什么是栈2.2 栈的特点2.3 栈中的局部变量2.4 栈缺点三、内存管理之堆3.1 什么是堆3.2堆的特点3.3 堆的缺点一、内管理之结构体1.1 最简单的数据结构之数组为什么要有数组:因为内存中有好多个类型相同、意义相关的变量需要管理,这个时候就需要数组来管理。如果用单独的变量来管理就会显得特别的乱。1.2 数组的优势和劣势**优势:**数组简单,可以用下标法进行访问,可原创 2021-08-06 23:14:46 · 253 阅读 · 1 评论 -
C语言学习之内存理解
文章目录一、程序运行为什么要内存1.1 计算机的运行目的1.2冯洛伊曼结构和哈弗结构1.3动态内存DRAM,静态内存SRAM1.4为啥需要内存二、位、字节、半字、字的概念和内存位宽2.1什么是内存2.2内存的大小2.3内存存放的模型2.4内存位宽2.5位,字节,半字、字的关系三、内存的编址,寻址、对齐3.1 内存的编址方式3.2内存和数据类型的关系3.3内存对齐四、如何操作内存4.1C 语言对内存地址的封装4.2 用数组访问内存4.3用指针访问地址一、程序运行为什么要内存1.1 计算机的运行目的就像你原创 2021-08-06 23:14:32 · 1163 阅读 · 4 评论 -
牛客网刷题记录(1)
文章目录1题2题3题4题5题6题7题8题9题10题11题单纯的记录自己刷题后的错误1题以下程序的k最终值是:int i = 10;int j = 20;int k = 3;k *= i + j;解法:考虑优先级,+的优先级高于 *= ;计算为 k = k * (i + j); 答案是902题这个程序的结果是:int main(){ int a=1,b=2,m=0,n=0,k; k=(n=b<a)&&(m=a) ; pri原创 2021-06-23 13:30:28 · 674 阅读 · 0 评论 -
C语言大复习
文章目录一、宏定义1.1、宏定义的生效环节1.2、条件编译1.3、平台已经编译好的宏定义1.4、宏扩展1.4.1 宏扩展的好处1.4.2 宏扩展的#和##符号1.5、可变参数的处理1.5.1:可变参数1.5.2:自定义参数名1.5.3:可变参数为0的处理二、指针和数组之间的区别2.1、数组和指是如何访问数据的2.2、数组的偏移和大小2.3、指针偏移方式2.4、指针访问数组三、位和字节的操作3.1位操作3.1.1按位或3.1.2 按位与3.1.3左移3.1.4右移3.1.5 取反3.1.6按位异或3.2相关用原创 2021-06-20 03:02:47 · 626 阅读 · 9 评论 -
C语言学习——链表
一、链表的基本概念通俗的来说,链表就是一列火车,车厢就是节点。车厢通过挂钩来链接,而链表通过节点的指针域链接。车厢包括货物和链接挂钩,而节点包括数据域(货物)和指针域(挂钩)。最后一个车厢拥有挂钩,但是不会链接下一个车厢,所以最后一个节点有数据域,而他的指针域指向空(NULL);代码的实现:struct Node { int data; //数据域 char Name[40]; //数据域 //....... 数据域可以有很多个 struct原创 2021-04-05 23:08:41 · 264 阅读 · 0 评论 -
C语言学习-二叉树
一、二叉树的基本定义1.1 基本概念(1)完全二叉树二叉树的最后一排(定义为n)只有一部分有子节点,剩余的(1 ~ n-1)二叉树的全部都有左右节点,我们把这样的二叉树叫为完全二叉树。如图:(2)满二叉树(是二叉树的一种特列)国际定义:除了叶结点外每一个结点都有左右子结点的二叉树。(每个节点都只有0个或者2个子节点)。国内的定义是:除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。从csdn来看,这种国内的被称作满二叉树的较多。(3)扩充二叉树扩充二叉树是对已有二叉树原创 2021-04-05 23:08:21 · 698 阅读 · 0 评论 -
C语言学习第四阶段-指针
一、原创 2021-04-05 23:07:46 · 137 阅读 · 0 评论 -
C语言学习第三阶段-函数的封装
一、为什么要封装函数。1、函数封装后可以提高我们代码的阅读性,可以快速的略过一些封装函数,直接找到main()函数,从main()函数开始再次有序的阅读代码。2、可以多次使用,不在需要我们去复制粘贴,一次购买,终身受益。3、可移植性高,安全性高,不再将代码展示出来,通过函数调用直接使用。二、基础函数的封装。三、函数文件的封装。...原创 2021-02-12 22:45:27 · 17512 阅读 · 3 评论 -
C语言学习第二阶段-循环结构
一,运算符号1、最基础的加减乘除:+ - * /;加减乘除都只适用于同一种类型的计算,数字与数字进行运算,不能让数字与字符进行运算。2、赋值预算符: =在C语言中,=并不相当于等于,而是一个赋值运算符:a = 2020;并不是a 等于2020,而是将2020这个值赋予给a,赋值行为从右往左。在C语言中,2020 = a;这样赋值是没有意义的(无效的),在这种情况下,2020被称之为右值,只能是字面常量,不能给常量赋值。所以在赋值的时候,一定是左边为变量,右边为常量。3、等号运算原创 2021-01-17 17:43:51 · 620 阅读 · 0 评论 -
C语言学习第一阶段-函数的结构基本构成
一:C语言的结构1.C语言函数的入口:main();main函数表示整个函数的入口,无论整个代码有多长,main函数有且只有一个,整个函数表示从这个时候开始执行。 int main();int是mian()函数的返回常用类型,为了使整个函数完整,所以一般都需要在main()函数的末尾添加一个返回值,return 0,整个函数表示如下:int main(){ return 0;}花括号表示这是一个函数,所以这是一个主函数的基础结构。2.C语言的预处理命令和头文件#include原创 2021-01-07 23:21:30 · 3538 阅读 · 0 评论