C语言
文章平均质量分 78
0基础学习C语言专栏
夜夜亮晶晶
一窍不通
展开
-
C语言中的scanf函数与多组输入
c——打印字符(char)%s——打印字符串%d——打印整型(int...)%f——打印浮点型(float)%lf——打印浮点型(double)原创 2023-06-15 13:04:51 · 898 阅读 · 5 评论 -
双指针类型题目
双向指针在需要并时使用较广泛。原创 2023-08-06 22:50:41 · 51 阅读 · 0 评论 -
C语言中#define后的算术运算
依旧保留了M+1外的括号,但后面 * M / 2 ,并不会变成 *(N + 1)/ 2.但真的是如此吗,这题给小学生做可能很简单,但是给像我这样的大学生做我只能说上难度了。// 我们就可以得出 M=3 , NUM = 4*3/2 = 12/2 = 6.// 这里 N=2 ,M=N+1 , NUM=(M + 1) * M / 2。// 不太了解 define 的其实也可以知道,,这里M被换成了N+1,原创 2023-08-08 23:18:20 · 508 阅读 · 1 评论 -
C语言——循环语句
一、while循环循环语句包括:·while循环·for循环·do while循环一、while循环1.1while循环的语法首先,我们先来对比一下while循环与if判断语句。相同点:当( )内的为真时,两者都会执行{ }内的语句。不同点:当两者无嵌套结构时,if语句会执行一次;当条件为真时,while语句会一直执行。1.21.2.1 break介绍其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以:while中的break是用于终止循环的。原创 2023-07-21 19:51:09 · 120 阅读 · 5 评论 -
C语言——函数
5.2 链式访问把一个函数的返回值作为另外一个函数的参数。我们来写一个函数:最内层的printf打印了43,返回值为2;中间的printf打印了2,返回值为1;最后的printf打印了1是不是很有意思的链式访问?六、函数的声明和定义6.1函数的声明1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。2. 函数的声明一般出现在函数的使用之前。要满足。原创 2023-07-25 12:44:46 · 97 阅读 · 11 评论 -
快排的非递归版本
我们借助栈来实现非递归的快排,我们需要记住的是,我们的栈存放的是数组的下标,我们还是要借助单趟快排,对从栈中取到下标对应的元素进行排序。我们完成了此次的单趟排序,返回的就是我们的基准值的下标,它的左边都比它小,右边都比它大。其中其实我们不先把left和right压入栈也可以,这样只是更接近的模拟递归。此外,我们要思考一个问题:怎么确定某侧数据处理完毕?因为我们是整理区间,所以当区间左右元素下标相等时,即处理完毕。所以我们的判断条件就是left < keyi-1 或 keyi+1 < right。原创 2024-01-24 21:06:36 · 341 阅读 · 0 评论 -
一篇博客读懂排序
学到这里,其实这些分布的并非是真正的希尔排序,gap到底取多少的值?其实画图把整个流程完整的走一遍我们就可以知道我们的目的是为了让prev和cur指针中间的值都是比key大的值,然后prev++负责记录下一个大的值,cur负责记录比key小的值,每次找到就交换,最后再把prev的值变为key即可。下面我们先来完成单趟,选用一个key值作为基准值,小的排在左边,大的排在右边,这样一次可以把整个数组分为两部分,然后我们还要进行基准值位置的调整,此时的left位置就是key应在的位置。原创 2024-01-24 10:13:13 · 1140 阅读 · 0 评论 -
ONEPIECE!程序环境和预处理——C语言最终章
时间过得飞快呀,从第一篇blog到现在,已经有三四个月的时间了,而我们终于也迎来了C语言的最终章——程序环境和预处理!加油吧朋友们,ONEPIECE就在眼前~原创 2023-10-23 19:59:01 · 267 阅读 · 5 评论 -
肉眼无法读懂是二进制独有的浪漫——一篇博客学懂文件操作(C语言)
肉眼无法读懂是二进制独有的浪漫原创 2023-10-15 11:27:35 · 279 阅读 · 36 评论 -
C语言结构体的一些鲜为人知的小秘密
本文介绍了结构体内存对齐规则、位段、枚举与联合体的一些小众知识原创 2023-09-25 22:01:08 · 212 阅读 · 4 评论 -
C语言字符串函数
C语言中字符串的常用函数以及内存函数原创 2023-09-17 11:36:10 · 473 阅读 · 30 评论 -
C语言——指针完全版
深入理解指针以及指针的各种用法原创 2023-09-07 22:20:30 · 726 阅读 · 37 评论 -
C语言qsort 函数的使用
从 qsort 函数的形式,我们就不难看出 qsort 可以根据我们传入的 compar 函数来进行我们所需要的排序。可以用 void* 指针接收任何类型指针,如果需要解引用 void* 指针,可以强制类型转换。void* 类型的指针 - 不能进行解引用操作符,也不能进行 + - 整数的操作。从调试我们可以看出来,qsort 已经为数组排好序了。void* 类型的指针是用来存放任意类型数据的地址。void* 无具体类型的指针。原创 2023-09-09 18:53:42 · 304 阅读 · 29 评论 -
C语言——如何跳出多层循环
我们知道C语言的 break 语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环,需要怎么做呢?原创 2023-08-17 09:02:50 · 1803 阅读 · 4 评论 -
C语言的goto语句——当有多层语句,但结果已经出错时,直接跳出层层语句,重新选择答案判断
goto语句其实不常用到,但是当我们不断嵌套时,会成为一个很有用的工具。先说结论。原创 2023-08-03 23:15:23 · 250 阅读 · 1 评论 -
C语言——数据在内存中的存储
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。我们知道十进制有个位十位百位,那么二进制也是存在这种低位和高位的,低位在右,高位在左。原创 2023-08-05 14:28:56 · 79 阅读 · 1 评论 -
零基础井字棋设计——仅需函数和数组的部分
本游戏只能完成玩家和电脑通过井字棋互动,而不能进行有效的竞技。电脑只负责随机下棋并根据结果判断局势,不能根据游戏规则去创造平局或者想方设法赢得游戏。原创 2023-07-26 21:05:20 · 203 阅读 · 16 评论 -
C语言——分支语句
所以当我们再每一行的末尾都加上break后,我们就可以得到理想的结果,代码如下:2.2.3 switch语句中的简化如果我们想把上面的代码题目改为“如果今天是1-5,则显示weekday;如果今天是6、7,则显示weekend。”我们还需要每行都写一遍吗?其实是可以省略一部分让代码哈更加简略的。相当于利用了switch中继续读取的功能,将同类项进行了合并。2.2.4 default子句但是如果有人刻意捣乱,给day赋值为比7更大或比1更小的值,系统就出错了吗?原创 2023-07-17 23:57:51 · 224 阅读 · 2 评论 -
初识C语言——初识指针和结构体
我们可以直接当成。原创 2023-06-18 14:54:02 · 199 阅读 · 15 评论 -
初识C语言(2)
其实arr2打印了我们想要的内容,但是我们并没有在arr2后面加上'\0'这个结束标志,所以他会继续随机打印直到随机遇到一个'\0'。我们来打印三行代码,大家可以看一下,arr1是字符串,arr2和arr3都是字符,arr3的后面加了'\0''\0'其实就是下面我们要认识的转义字符的一种。代码中有不需要的代码可以直接删除,也可以注释掉。需要注意的是,所有转义字符都算一个字符长度。代码中有些代码比较难懂,可以加一下注释文字。在计算字符串长度的时候。是结束标志,不算作字符串内容。字符串的结束标志是一个。原创 2023-06-15 10:54:21 · 57 阅读 · 2 评论 -
初识C语言(1)——简单了解C的全貌
应该先规定变量的数据类型,然后确定变量名,其次给变量进行初始化(即赋初始值)。float和double都能表示weight的数据类型。原创 2023-06-13 23:46:47 · 169 阅读 · 2 评论