C语言
文章平均质量分 88
深入探寻 C 语言的神奇领域!本博客专栏全面涵盖 C 语言的基础语法、高级编程技法、项目实践操作等内容。不管您是初涉此道的新手,还是寻求进阶的资深人士,皆能于此获取实用的知识及编程的灵感源泉。
悲伤小伞
如果知道那是我们最后一次见面, 那么我一定会多看你几眼。
展开
-
第1讲:探索C语言——常见概念
⼈和⼈交流使⽤的是⾃然语⾔,如:汉语、英语、⽇语那⼈和计算机是怎么交流的呢?使⽤计算机语⾔。⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计算机⼯作的。C语⾔就是众多计算机语⾔中的⼀种,当然C++/Java/Go/Python都是计算机语⾔。原创 2023-11-26 17:47:29 · 398 阅读 · 1 评论 -
C语言——算术操作符
5.0/2 或5/2.0则输出2.5 //记的使用%f。C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符。都是有2个操作数的,位于操作符两端的就是它们的操作数,这种操作符也叫双⽬操作符。除号的两端如果是整数,执⾏的是整数除法,得到的结果也是整数。负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。操作符也被叫做:运算符,是不同的翻译,意思是⼀样的。如果5%2则输出1 //为余数。所以如果5/2则输出2 //为商。// 输出 1.000000。⽤来完成加法和减法。原创 2023-11-27 20:06:49 · 433 阅读 · 0 评论 -
C语言——入门分支与循环
if 语句的语法形式如下:if表达式表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏如int main()int a = 8;if (a < 9) { //默认情况下,if else后只跟一条语句时,不需要大括号括进//如果多条语句,则放进大括号 注:为方便理解,最好都放进大括号里!return 0;原创 2023-12-03 23:14:42 · 984 阅读 · 0 评论 -
循环与分支——猜数字游戏实现(上)
程序中在调⽤ rand 函数之前先调⽤ srand 函数,通过 srand 函数的参数seed来设置rand函数⽣成随 机数的时候的种⼦,只要种⼦在变化,每次⽣成的随机数序列也就变化起来了。真正的随机数的是⽆法预测下⼀个值是多少的,⽽rand函 数是对⼀个叫“种⼦”的基准值进⾏运算⽣成的随机数。如果再深⼊了解⼀下,我们就不难发现,其实rand函数⽣成的随机数是伪随机的,伪随机数不是真正 ,的随机数,是通过某种算法⽣成的随机数。那我们怎样让种子是变化的呢,C语言早就为我们准备好了一切,实在是太贴心了!原创 2023-12-18 17:35:07 · 934 阅读 · 1 评论 -
循环与分支——猜数字游戏(下)
恭喜你获得了你的第一个小游戏//游戏进入页面//表示1至99的数printf("请输入你猜的数字\n");if (guess < z) { //使用if循环嵌套printf("猜小了\n");//判断用户猜的值与随机数的大小的比较printf("猜大了\n");else {printf("恭喜你猜对了\n");break;//跳出循环int main()原创 2023-12-18 23:22:23 · 914 阅读 · 1 评论 -
C语言——数组(上)
数组是⼀组相同类型元素的集合;这样我们得到了两个重要的信息:如:int grades [10]={1,2,3,4,5,6,7,8,9,10};(完全初始化)这样我们就把1 2 3 4 5 6 7 8 9 10这些数据存放进去了有完全初始化自然而然就会有不完全初始化还有错误的初始化如存放的数据过多,超出所指定的内存这时候就有小朋友问了:怎样取出其中的值呢? 这样我们就来到了数组的使用,首先我们得先要了解数组的下标 我们规定开始从0开始,如 int arr [4]={1,2,3,4};1我们了解这些就可以开始原创 2023-12-23 11:13:27 · 390 阅读 · 1 评论 -
关于gitee的使用和svn小乌龟的安装及使用
gitee(中文名:码云 ,原名Git@OSC)是开源中国推出的基于git的代码托管服务。国内访问GitHub速度比较慢,如果想托管自己的代码到云端,gitee是个不错的选择,华为的鸿蒙2.0源码也是放在gitee上的。他是相当于你的QQ仓库,用于存放一些重要的事情和文件;而gitee是可以用于存放你的代码giteegitgit你将会进入这个页面,下载安装完成后。右键菜单则会出现相应的菜单,则表示你安装好了。原创 2023-12-23 12:37:49 · 2742 阅读 · 2 评论 -
C语言——数组(下)
4. ⼀维数组在内存中的存储有了前⾯的知识,我们其实使⽤数组基本没有什么障碍了,如果我们要深⼊了解数组,我们最好能了 解⼀下数组在内存中的存储。依次打印数组元素的地址:int main()int i = 0;for (i = 0;i < 10;数组随着下标的增⻓,地址是由⼩到⼤变化的,并且我们发现那我们如何计算数组的元素个数呢sizeof中C语⾔是⼀个关键字,是可以计算类型或者变量⼤⼩的,其实sizeof也可以计算数组的⼤⼩。原创 2023-12-28 21:13:19 · 909 阅读 · 1 评论 -
C语言——二分查找(在万千之中快速找到你)
在⼀个升序的数组中查找指定的数字n,很容易想到的⽅法就是遍历数组。原创 2024-01-18 15:52:08 · 587 阅读 · 1 评论 -
C语言—函数(大化小方式的心脏)
了解了库函数,我们的关注度应该聚焦在⾃定义函数上,⾃定义函数其实更加重要,也能给程序员写 代码更多的创造性。ret_typefun_name形式参数ret_type:是指函数返回类型fun_name :是函数名括号中放的是形式参数{}:括起来的是函数体为了好理解,这里我们把函数比作工厂,工厂得输入原材料(可以是多个参数),经过加工得到产品(计算结果);ret_type是⽤来表⽰函数计算结果的类型,有时候返回类型可以是void,表⽰什么都不返回fun_name。原创 2024-01-30 23:07:38 · 1025 阅读 · 1 评论 -
关于我在C语言中玩扫雷(上)
这是一个经典扫雷游戏(),今天,我们将要用C语言去实现它;原创 2024-02-05 20:56:21 · 1770 阅读 · 1 评论 -
C语言扫雷代码(蹦蹦炸弹)(下)
综合上节我们对于扫雷代码的分析与代码的尝试我们就写出了下面的扫雷代码。原创 2024-02-06 13:26:15 · 1011 阅读 · 1 评论 -
VS实用调试技巧(检验程序的法宝)
bug 一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。“Bug”的创始人格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug” 这名字,正是由赫柏所取的。1947年9月9日,赫柏对Harvard Mark II设置好17000个继电器进行编程后,技术人员正在进行整机运行时,它突然停止了工作。于是他们爬上去。原创 2024-04-05 12:19:32 · 789 阅读 · 1 评论 -
C语言——函数递归
递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。写⼀个史上最简单的C语⾔递归代码:main();//在main函数调用mainreturn 0;上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问题,代码最终也会陷⼊死递归,导致栈溢出(Stack overflow);递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较小的⼦问题来求解;原创 2024-04-05 15:20:49 · 921 阅读 · 1 评论 -
C语言详解指针(指针海洋的探索,将传值与传址刻在心里)
目录一、指针的概念1.1内存与地址 例子:二、变量的指针与指针变量2.1、指针变量的定义及使用1、指针变量的定义2、指针变量的使用2.2 指针变量的大小2.3、指针+-整数 2.4、void*指针三、指针的运算1、指针+- 整数2、指针-指针3、指针的关系运算6. 野指针6.1、野指针成因6.2、如何规避野指针6.3、注意指针不要越界6.4、当指针不再使用时,可以将其置为NULL,指针使用前,判断其有效性6.2、assert函数四、多级指针及指针数组(1)多级指针对于指针的学习还很多,今天先讲到这里了要知道原创 2024-04-12 22:50:07 · 1799 阅读 · 0 评论 -
C语言之九九乘法表||素数||最小公倍数
我们需要一个变量来代替素数,其次我们需要两个变量来判断他是否能够整除和整除的值,最后因为要判断是否只有本身和1能够整除,我们可以引用一个变量来统计它能够整除的数的个数;然后将最小的数的值赋给c,然后让a和b依次去除以c,c每次减少1,第一个能与a和b整除就为最小公倍数。以列或行观察总会有一个不变的量乘以1,2,3,4,5,6,7,8,9。由最小公倍数的意义得需要三个变量,其中两个是需要有用户特定的。以a(除数),b(被除数),c(余数),d(个数)为例。然后在+1在乘以1,2,3,4,5,6,7,8,9。原创 2024-04-12 22:54:02 · 666 阅读 · 1 评论 -
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
1.字符分类函数正文开始:在编程过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语⾔标准库中提供了 一系列库函数,接下来我们就学习⼀下这些函数。1.字符分类函数C语⾔中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。这些函数的使⽤都需要包含⼀个头⽂件是ctype.h练习:写⼀个代码,将字符串中的小写字⺟转⼤写,其他字符不变。2.字符转换函数//将参数传进去的大写字母转小写//将参数传进去的小写字母转大写。原创 2024-04-14 18:26:46 · 634 阅读 · 2 评论 -
C语言—内存函数的实现和模拟实现(内存函数的丝绸之路)
函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。如果source和destination有任何的重叠,复制的结果都是未定义的。如果源空间和目标空间出现重叠,就得使用memmove函数处理。这个函数在遇到 '\0' 的时候并不会停下来。对于重叠的部分,可以交给memmove处理;1. memcpy 使用和模拟实现。2. memmove 使用和模拟实现。原创 2024-04-15 10:24:13 · 605 阅读 · 1 评论 -
C语言结构体—自定义类型—struct
int age[4];}s1,s2;//创建两个变量s1,s2也许初期看不习惯,容易疑惑,其实这就相当于两步合并一步:先定义结构体stu,在定义结构体变量;int age[4];第三种:匿名结构体struct {int age[4];}s1,s2;在后面的学习中,我们会也利用结构体的嵌套实现链表:在这里看不懂也没有关系,up主会在后期的博文中讲解这一板块//链表的运用int data;//结构体嵌套初始化//结构体嵌套初始化结构成员访问操作符1、结构体成员的直接访问。原创 2024-04-15 17:22:15 · 400 阅读 · 1 评论 -
数据在内存中的存储(探索内存的秘密)
一、整数在内存中的存储一、整数在内存中的存储整数的2进制表示方法有三种,即 原码、反码和补码三种表示方法均有和两部分,符号位都是,而,剩余的都是数值位。正整数的原、反、补码都相同。原、反、补码都相同负整数的三种表示方法各不相同。原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码:将,其他位依次按位取反就可以得到反码。补码:反码+1就得到补码。原创 2024-04-19 20:32:53 · 1050 阅读 · 0 评论 -
【自定义类型详解】完结篇—联合体(共用体)与枚举详解
3.枚举的应用。原创 2024-04-20 23:31:36 · 818 阅读 · 0 评论 -
动态内存的管理(内存储存的god)
数组在申明的时候,必须指定数组的长度,数组空间一旦确定了大小不能调整对于空间的开辟,固定的空间大小有时候不能满足我们的需求。这个时候我们就需要自己开辟一段空间。原创 2024-04-21 14:43:51 · 1013 阅读 · 0 评论 -
C语言之详细讲解文件操作(抓住文件操作的奥秘)
可以使。原创 2024-04-28 20:02:48 · 659 阅读 · 0 评论 -
什么是编译与链接呢!
int b = a;//当进行预处理时,此语句将变为 int b = 10;而将#define删除return 0;2.处理所有的条件编译指令,如: #if、#ifdef、#elif、#else、#endifint main()int a = 10;int b = 20;int c = 30;//d ==30#if 0//如果为1,则正常运行下句#endif//相当于注释掉此句return 0;3.处理#include 预编译指令,将包含的头文件的内容插入到该预编译指令的位置。原创 2024-04-29 21:04:33 · 328 阅读 · 0 评论