首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
C语言学习笔记
当时只道是寻常_
创建于2021-05-27
订阅专栏
在学习C语言过程中遇到的问题及解决方案
等 8 人订阅
共77篇文章
创建于2021-05-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
在Windows中测试c语言单个函数运行时间方法
在做单片机项目开发的过程中,在特殊应用中对代码执行的时间有着严格的要求,那么如何准确的测试出每个函数的的运行速度是多快呢?
C语言预定义宏的使用
ANSIC标准定义的6种C语言预定义宏 LINE_:表示当前源代码的行号; FILE:表示当前源文件的名称; DATE:表示当前的编译日期; TIME:表示当前的编译时间; STDC:当要求程序严格遵循ANSI C标准时该标识被赋值为1; __cplusplus:当编写C++程序...
C语言中字符串比较
说起比较运算,肯定第一时间想到了C语言中关于比较的相关运算符 “>、<、!=、>=、<=、==”,那么要比较两个字符串是否相等是不是直接用“==”比较就行了。有两个字符串s1和s2,内容都是"abc",在if语句中通过"=="运算符进行比较。 运行结果...
C语言中利用联合体巧妙处理数据
在C语言处理数据的时候,经常会遇到将一个整形数据拆分成高位和低位,或者是将两个字符型数据组合成一个整形数据。通常的做法是将数据左移或者右移对数据进行组合或者拆分。现在可以利用联合体的特性来处理这一类数据。 联合体又叫共用体,共用体的所有成员占用同一段内存,修改一个成员会影响其余所...
C语言学习笔记---指针和数组
数组是相同类型的数据集合,会在内存中占用连续的一块内存。而指针是存储的一个地址,在内存中不会占用连续的内存。 定义一个整形数组,然后定义一个指针,将数组首地址传给指针,然后用数组和指针分别打印内容。打印结果为: 在keil的单步模式下观察指针和数组 通过变量观察可以看出,指针p内...
C语言学习笔记---指针
C语言要玩的好,指针是核心,但是指针在学习的时候看教程往往感觉一看就明白,但是实际用的时候一用就错,而且还不知道错在哪。为了更加深刻的了解指针,将学习过程记录下来,依次加深对指针的理解。 定义一个变量a,值为100,然后定义一个一级指针p1,p1指向a,然后定义一个二级指针p2,...
C语言常用8种排序方法耗时测试
最近项目中用到排序算法,于是研究了一下常用的8种排序算法。由于是在8位单片机上使用,所以对内存和时间要求比较高,最好是不额外占空间,同时耗时较短。于是对常用的8中算法耗时做了个测试。通过LED的亮灭来指示算法开始执行和执行完成情况,然后用示波器测试LED管脚电平来判断算法所用时...
从石头剪刀布浅谈算法的作用
刚开始学习C语言的时候,常常听到前辈说,C语言的核心就是算法。但是对于小白来说,常常一脸懵逼,搞不懂啥叫算法?算法有什么用?我的if-else语句照样可以走天下。但是作为小白来说虽然不懂但是也不敢问,只能把这个疑问消灭在萌芽状态。 比如现在要写一个两个人玩石头剪刀...
C语言学习笔记----sizeof()的使用
其核心功能就是判断数据类型长度符,先通过一个实际例子看一下。通过上面的例子可以看到字符型和无符号字符型长度为都是1,整形和无符号整形长度都为2。字符数组cs的长度为8,其中字符长度为7加上结束符,共占8个字节。字符串指针pcs长度为3。后面的x9、x12、x16这三个都是指针,长...
使用C语言产生正弦波数据
#define PI 3.float hd = 0.float fz = 0.这种方法将点数的个数作为最大值,比如生成64个点,那么最大值就是64,如果生成128个点,最大值就是128.float hd = 0.float fz = 0.tem = ( unsigned int ...
C语言排序方法-----希尔排序
下来比较4和6,不需要交换位置,数组已经比较结束了,下来元素间距减小为原来的一半,gap=5,它的一半为2.5但是程序取的是整数,所以元素间距gap的值变为2.下来继续比较num[0]和num[2],0<1,不需要交换位置,继续比较7和2,7>2需要交换位置。下来比较1和4,不需...
C语言排序方法-----二分插入排序
由于在直接插入排序过程中,待插入数据左边的序列总是有序的,针对有序序列,就可以用二分法去插入数据了,也就是二分入排序法。适用于数据量比较大的情况。 二分插入排序的算法思想是: (1)计算 0 ~ i-1 的中间点,用 i 索引处的元素与中间值进行比较,如果 i...
C语言排序方法-----直接插入排序
插入排序的基本思想是:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 从数组第二个元素开始,依次和前面的元素比较,如果前面的元素大于当前元素,就将大元素移动到数组后面,小的元素移动到数据前面。 ...
C语言排序方法-----二元选择排序法
上一篇文章C语言排序方法-----选择排序法中分析了选择排序法,这篇文章分析一下选择排序法的优化算法,二元选择排序法,在选择排序法中每次找一个最大或者最小的数据放到开始位置,那么为了提高效率可以每次比较的时候同时找到最大值和最小值,一个放在数组头,一个放在数组尾,这样每次就可以排...
C语言排序方法-----选择排序法
首先来看看选择排序法的定义 核心思想就是先在所有数据中选出一个最大或者最小的数放在第一位,然后再剩下的数据继续选最大或者最小的数放在第二位,依次进行下去直到结束。 下来单步分析一下排序过程 这是要排序的原始数据,首先将第0个元素当做最小的数,然后再剩下的数据中查找比它更小数。由于...
C语言排序方法-----冒泡排序法
直接比较数组相邻的两个元素,如果前一个数字比后一个大,就交换两个数字位置。 下面看运行结果 原始数组:9 8 7 6 5 4 3 2 1 0 第 0趟 : 8 9 7 6 5 4 3 2 1 0 第 1趟 : 8 7 9 6 5 4 3 2 1 0 第 2趟 : 8 7 6 9 ...
C语言内存管理分析
一个由C/C++编译的程序占用的内存分为以下几个部分: (1) 栈区(stack) : 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈,地址由高向低延伸。 (2) 堆区(heap): 一般由程序员分配释放,由程序执行过程中动态申请分配的内...