C语言
文章平均质量分 71
本专栏是在b站上学习尚硅谷康师傅的教程的笔记
温柔哥`
这个作者很懒,什么都没留下…
展开
-
算法-选择排序
如下数组 A 中,变量 i (从 1 ~ n-1),初始令变量 min = i,,变量 j 从 i+1 ~ n 依次遍历元素,若 A[min] > A[j],则更新 min = j,当变量 j 遍历到 n 后,判断 i 是否还与 min 相等,若相等则说明当前最小值就是 i 所指向的元素,若不相等,则需要交换 i 与 min 所指向的元素,这样就确定了一个最小值元素,进行下一次上述流程,总过需要 n-1 趟便可以将数组 A 排序为从小到大。每一趟在待排序元素中选取关键字最小的元素加入有序子序列。原创 2024-03-07 10:50:39 · 373 阅读 · 0 评论 -
C语言-一维数组的定义
数组通过变量名后加方括号表示,方括号里面是数组可以容纳的成员数量(即长度)。//数组 arr ,里面包含 10 个成员,每个成员都是 int 类型// 或者10声明数组时,必须给出数组的大小。数组可以在声明时,使用大括号,同时对每一个成员赋值。变形形式 1:C 语言允许省略方括号里面的数组成员数量,这时根据大括号里面的值的数量,自动确定数组的长度。// 自动确定数量为 5 ,与上面的定义方式完全相同变形形式2:对数组部分元素赋初值:如果大括号里面的值,少于数组的成员数量,那么。原创 2024-03-03 16:52:12 · 1200 阅读 · 0 评论 -
C语言-对数组的理解
数组提供了一种连续的内存空间来存储相同类型的数据,这样可以提高内存的使用效率,并且方便进行数据的访问和修改。模拟现实世界:在很多实际情况中,一组相关的数据可以看作是一个整体,例如一周的每天温度、一个月的销售额等。:数组是一种高效的数据结构,可以快速地访问、修改和遍历其中的数据。:通过数组,可以将复杂的数据结构和运算简化为简单的数组操作和访问,从而简化代码,提高代码的可读性和可维护性。故数组元素在内存中依次紧密有序排列,占据的空间的大小,取决于数组的长度和数组中元素的类型。中引用的是这块连续空间的。原创 2024-03-03 16:22:32 · 328 阅读 · 0 评论 -
C语言-break、continue和goto关键字
如果我们没有找到这样的因子,那么 n 就是素数,因为任何大于 sqrt(n) 的数都不可能是 n 的因子(否则,就会有一个小于 sqrt(n) 的对应因子)。如下面这段示例代码中,当 i=1 时就满足了 if 判断条件,则会执行 break 语句,这时 for 循环就结束了,相当于说 break 下面的语句一次也不会执行到!在嵌套循环中,break 结束的是包裹 break 关键字的最近的一层循环!因此,我们只需要检查到 sqrt(n) 就足够了,这可以大大减少我们需要检查的数的数量,从而提高算法的效率。原创 2024-02-29 15:34:52 · 1003 阅读 · 0 评论 -
C语言-“无限”循环和嵌套循环
所谓的嵌套循环,就是在一个循环中又写了一个循环,这个称之为两层循环。当然了,第二层循环中还可以再写一个循环,这样就变成了三层循环。不过,实际开发中,我们最多见到的嵌套循环是两层。一般不会出现超过三层的嵌套循环。如果将要出现,一定要停下来重新梳理业务逻辑,重新思考算法的实现,控制在三层以内。否则,可读性会很差。实质上,嵌套循环就是把内层循环当成外层循环的循环体。只有当内层循环的循环条件为false(值为0)时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的外层循环。设外层循环次数为m。原创 2024-02-29 14:58:00 · 539 阅读 · 0 评论 -
C语言-循环结构
循环语句具有在某些条件满足的情况下,反复执行特定代码的功能。都具备四个要素for 和 while 循环可能一次也不执行,单 do-while 循环至少会执行一次如何选择?如果有明显的循环次数(范围)使用 for 循环,若没有则 while 循环,如果要求至少执行一次则使用 do-while 循环。原创 2024-02-29 11:26:47 · 1020 阅读 · 0 评论 -
C语言-分支结构
让我们来分析一下第二种的错误写法,因为成绩但凡大于等于 80 的则一定也会大于等于 60,所以只要成绩大于等于 60 则就没有机会进行是否大于等于 80 的判断了,故这是错误的写法。如果表达式的值等于某个 case 中的常量值,则执行对应 case 中的执行语句。例如:当 type=1 时输出香蕉,当 type=2 时输出苹果,当 type=3 时输出梨子,则下列两种写法的顺序都是可以的。例如:成绩在 [0, 59] 之间为不合格,成绩在 [60, 79] 时为合格,成绩在 [80, 100] 时为优秀。原创 2024-02-06 10:54:56 · 760 阅读 · 0 评论 -
C语言-顺序结构
程序从上到下逐行地执行。表达式语句都是顺序执行的。并且上一行对某个变量的修改对下一行会产生影响。在C语言中,顺序结构是指程序按照代码的书写顺序从上到下逐行执行,没有跳过或重复执行的情况。这种结构是最简单、最基本的程序结构。具体来说,顺序结构就是程序运行时自上而下的依次执行我们所写的代码,直到执行完所有语句。例如,在一个简单的C程序中,定义变量、赋值、计算以及打印结果等操作都会按照它们在代码中出现的顺序依次执行。这种顺序执行的方式是C语言默认的执行方式,也是程序中最基本的控制流程。原创 2024-01-28 22:30:51 · 625 阅读 · 0 评论 -
C语言-流程控制结构
流程控制结构是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。这些结构允许我们根据特定条件或循环重复执行某段代码。原创 2024-01-28 18:20:37 · 229 阅读 · 0 评论 -
C语言-运算符的优先级
来控制表达式的执行顺序,我们不需要去记这些优先级,就算你记住了,自己写出的表达式别人可能也看不懂,因为别人不一定记住了优先级。优先级就是在表达式运算中的运算符顺序。2.复杂的表达式分开写,可读性更高。原创 2024-01-26 23:09:05 · 168 阅读 · 0 评论 -
C语言-sizeof 运算符
不同的系统中,返回值的类型有可能是 unsigned int ,也有可能是unsigned long ,甚至是 unsigned long long ,对应的 printf() 占位符分别是 %u 、 %lu和 %llu。头文件里面,对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是 unsigned long。sizeof 运算符的返回值,C 语言只规定是无符号整数,并没有规定具体的类型,留给。,用来统一表示 sizeof 的返回值类型。sizeof(参数)原创 2024-01-26 23:05:08 · 347 阅读 · 0 评论 -
C语言-条件运算符
从上面两种写法也很容易可以看出用哪一种更合适了吧:当然是第 1 种了,第二种看的我是直崩溃了,但凡眼神差一点都看不懂在干啥。1.条件表达式是如果为 true (非0值),就执行表达式1,否则执行表达式2。1.凡是可以使用条件运算符的,都可以改写为if-else结构,反之不成立。2.能用条件运算符就用,因为效率高。如:获取三个数中的最大值。原创 2024-01-26 22:55:34 · 333 阅读 · 0 评论 -
C语言-位运算符
示例:设字符型 x 的当前值为 53,将其最低两位清 0,其余位保持不变。示例:设字符型 x 的当前值为 53,将其最低两位置 1,其余位保持不变。示例:设字符型 x 的当前值为 53,将其最低两位取反,其余位保持不变。示例:设字符型 x 的当前值为 53,保留其最低 4 位,其余位清零。运算规则:对应位一个为1一个为0,才为1,否则为0。运算规则:对应位只要有1即为1,否则为0。运算规则:对应位都是1才为1,否则为0。待保留位全部与 1,其余位与 0。待置为1的位或1,其它位或0。原创 2024-01-26 17:49:39 · 1019 阅读 · 0 评论 -
C语言-逻辑运算符
逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式。原创 2024-01-26 17:08:07 · 294 阅读 · 0 评论 -
C语言-比较运算符
比较运算符又称关系运算符。原创 2024-01-26 16:38:14 · 525 阅读 · 0 评论 -
C语言-赋值运算符
可以使用自动类型转换或使用强制类型转换原则进行处理。原创 2024-01-25 20:17:13 · 350 阅读 · 0 评论 -
C语言-算术运算符
算数运算符,顾名思义就是做算术运算呗,无非就是将我们学过的数学中的运算搬到计算机上。原创 2024-01-25 20:05:21 · 347 阅读 · 0 评论 -
C语言-运算符(Operator)总览
对于一元、二元的,大家可能不太懂,你可以联想初中学过的“二元”一次方程(y = kx + b),x和y就是两个操作数,就是二元。我们这里的二元跟这种很类似,例如符号是不是只能用在一个操作数上,如-8。分为:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、sizeof运算符。分为:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符 (三目运算符)原创 2024-01-25 19:34:58 · 405 阅读 · 0 评论 -
C语言-常见进制(二、八、十、十六进制)
将二进制从右至左,每够四位就转换为十进制数字,如果最后不够四位,往前补0,最终就是十六进制。将二进制从右至左,每够三位就转换为十进制数字,如果最后不够三位,往前补0,最终就是八进制。1.不同的进制只是整数的书写方法不同,不会对整数的实际存储方式产生影响。这里我们以两个字节(即16位)为例,计算正负二十七的原码、反码和补码。将十六进制从右至左,每够四位就转换为二进制,最终得到二进制。将八进制从右至左,每够三位就转换为二进制,最终得到二进制。:原码的符号位不变,其余位取反(0变1,1变0)对应的十进制为 1*原创 2024-01-25 17:00:02 · 1063 阅读 · 0 评论 -
C语言-局部、全局变量
局部变量:在函数体内定义的变量,也称内部变量。局部变量只能在定义它的函数中使用。可以简单理解为在一对大括号{}内部定义的变量,也只能在这一对大括号{}内部使用全局变量:在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量)。一个程序中,在全局变量之后定义的函数,都可以使用在其之前定义的全局变量。原创 2024-01-25 14:52:59 · 380 阅读 · 0 评论 -
C语言-输入/输出函数
c语言本身没有提供专门的输入输出语句,所有的输入输出都是由调用标准库函数中的输入输出函数来实现的。任意类型字符单个字符字符串字符单个字符字符串。原创 2024-01-24 23:06:30 · 1308 阅读 · 0 评论 -
C语言-常量(宏定义、const、枚举)
程序运行时,其值不能改变的量,即为常量。字面常量(就是直接写出的数字,例如3.14#define定义的标识符常量const修饰的常变量枚举常量在文件开头用 #define 来定义常量,也叫作“宏定义”。宏定义,就是用一个标识符来表示一个常量值,如果在后面的代码中出现了该标识符,那么编译时就全部替换成指定的常量值。即用宏体替换所有宏名,简称宏替换。#define 符号常量名 常量值符号常量名,称为宏名,属于标识符,一般定义时用大写字母表示。常量值,称为宏体。原创 2024-01-24 19:43:55 · 1119 阅读 · 0 评论 -
C语言-变量间的运算规则
x 是 unsigned char 类型,最大值是255 (二进制 11111111 ),加 1 后就发生了溢出, 256 (二进制 100000000 )的最高位 1 被丢弃,剩下的值就是 0。每一种数据类型都有数值范围,如果存放的数值超出了这个范围(小于最小值或大于最大值),需要更多的二进制位存储,就会发生溢出。这是因为:两个相同类型的整数运算时,或者单个整数的运算,一般来说,运算结果也属于同一类型。这是因为char类型只有一个字节,而int类型有4个字节,char类型只能保留8位,其余的都会舍去。原创 2024-01-24 18:09:53 · 1111 阅读 · 0 评论 -
C语言-布尔类型
除了进行数值计算、文字信息处理,电脑也能完成逻辑判断之类任务,逻辑型也称为布尔型(bool),关系运算>、>=、!=等,它们的运算结果是bool型的,只有1(真)、0(假)。C语言标准(C89)没有为布尔值单独设置一个类型,所以在判断真假时,使用整数 0 表示假,所有非0表示真。int10拓展:其实也可以使用来替换,不过他们之间还是有差别的:1.与#define不同,typedef创建的符号名只受限于类型,不能用于值。2.typedef由编译器解释,不是预处理器。3.对指针操作不同。若。原创 2024-01-24 12:24:15 · 1520 阅读 · 0 评论 -
C语言-字符类型
C语言使用char类型来表示一个字符,并且C语言是没有字符串类型的,我们通常使用字符数组来表示字符串。每个字符变量,在16位、32位或64位编译器中都是占用 1 个字节(=8位)。ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了127个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号)原创 2024-01-24 11:25:39 · 1438 阅读 · 0 评论 -
C语言-浮点类型
浮点类型详解原创 2024-01-23 23:39:32 · 1277 阅读 · 0 评论 -
C语言-整数类型
可以预测不久的将来会推出128位甚至256位的CPU,但是在C语言刚刚出现的时候,CPU还是以8位和16位为主。short int (简写为 short )、long int (简写为 long )、long long int (简写为 long long )字面量指定为int类型,这样我们上面代码的意思就是将int类型的123隐式转换(自动类型提升)为long类型再赋值给a。C语言规定了如下的几类整型:短整型(short)、整型(int)、长整型(long)、更长的整型(long long)原创 2024-01-23 22:17:07 · 905 阅读 · 0 评论 -
C语言-对变量的理解
内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。通过变量名,可以访问这块内存区域,获取里面存储的值。数据类型变量名存储的值数据类型 变量名 = 变量值。原创 2024-01-15 22:23:04 · 507 阅读 · 0 评论 -
C语言中对关键字和标识符的理解
定义:被C语言赋予了特殊含义,用做专门用途的字符串(或单词)特点:全部关键字都是小写字母。举例:intreturn等已经被C语言定义好了。传统的C语言(ANSI C)有32个关键字。inlinerestrict_Bool_Complex和_Imaginary。_Alignas_Alignof_Atomic_Noreturn和_Generic。原创 2024-01-15 21:58:25 · 512 阅读 · 0 评论 -
C语言-输出函数printf()
其中,"格式控制字符串"是用双引号括起来的一个字符串。包括:普通字符:普通字符即需要在输出时字符。占位符:由“%”和格式字符组成。这个位置。"输出列表"是程序需要输出的一些数据,可以是常量、变量或表达式。用于。注意:printf() 参数与占位符是一一对应关系。原创 2024-01-15 19:45:08 · 1715 阅读 · 1 评论 -
对C语言的标准库、头文件的理解
不同的功能定义在不同的文件里,这些文件统称为“头文件”(header file)。系统自带的功能会在对应这个功能的头文件进行描述,比如 printf() 的头文件就是系统自带的stdio.h。头文件的后缀通常是.h。原创 2024-01-15 18:37:09 · 631 阅读 · 0 评论 -
C 程序运行机制
因为我们的C程序中会使用 C程序库的内容,比如 、 中的函数printf()、system()等,这些函数不是程序员自己写的,而是C程序库中提供的,因此需要链接。链接后,生成的.exe 文件,比obj 文件大了很多。将编译形成的目标文件“.obj”和库函数及其他目录文件连接/链接,形成统一的。编写C语言源程序代码,并以文件的形式存储到磁盘中。有了可执行的exe文件,我们可以在控制台下直接运行此exe文件。如果程序没有错误,没有任何提示,就会生成一个扩展名为“原创 2024-01-15 18:27:18 · 333 阅读 · 0 评论 -
CLion中想要在一个项目中有多个C源文件(有多个main函数)
我们知道,一个项目中只能有一个main()函数,但是我们不想分开创建这么多个C源文件,我们想要。3)在需要运行的代码中右键,点击 Add executable for single c/cpp file。4)可以在 Cmakelists.text 文件中看到多出的这一行代码,这就是插件帮我们完成的事情。5)右键项目文件夹,点击 Reload CMake Project 进行刷新。6)此时右上角标签处已经增加了我们的文件选项,选择需要的标签。7)点击启动即可,此时不再报错。原创 2024-01-15 11:03:56 · 2552 阅读 · 4 评论 -
第一个C程序的编写->编译->运行
C 语言的源代码文件,以后缀名 .c 结尾。原创 2024-01-14 19:52:20 · 791 阅读 · 0 评论 -
对C语言的理解
就是我们人类与计算机进行交流的媒介。我们可以使用编程语言对计算机下达命令,从而让计算机完成我们所需要的功能。语言 = 语法 + 逻辑计算机语言有很多种。如:C 、C++、Java、Go、JavaScript、Python,Scala等。原创 2024-01-14 18:08:49 · 921 阅读 · 0 评论