c语言
文章平均质量分 92
c语言
mljy.
努力学习中……
展开
-
c语言刷题——求出0~100000之间的所有“水仙花数”并输出
首先我们要了解什么是“水仙花数”,,如:153=1^3+5^3+3^3,则153是一个“水仙花数”注:在本文章中在实现各功能时采取了调用自定义函数的方法,这会使得程序主函数更加简洁因此我们应该如何实现以上的功能呢?1.首先要遍历0~100000所有的整数要使用到循环语句,为了使代码看上去更简洁,在本篇的代码中用到的是2.在遍历过程中要得到数的位数,可以调用3.在遍历过程中还要得到各位数字的n次方之和,这就也要调用4.判断的返回值是否会等于该数本身,若。原创 2024-04-27 23:42:16 · 727 阅读 · 15 评论 -
c语言刷题——输出图案
题目:请打印用“*”组成的X形图案多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。针对每行输入,输出用“*”组成的X形图案。输入:5输出:* ** ** ** *输入:6输出:* ** ****** ** *原创 2024-05-04 16:49:51 · 1508 阅读 · 36 评论 -
深入理解预处理
C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。2. #define 定义常量 基本语法:思考:在define定义标识符的时候,要不要在最后加上 ; ? 在一些情况下加上代码不会有什么太大的问题,但在一些情况下就会使代码出现错误例如: 在以上代码程序就会出现以下报错这时因为在预处理之后代码就变为以下形式 通过以上代码就可以了解到使用#define后不要在在最后加上 ;#define 机制包括了⼀个规定,允许把参数替换到文本中,这种实现原创 2024-06-19 23:29:14 · 1600 阅读 · 65 评论 -
编译和链接
1.翻译环境与运行环境在本篇中将对程序的执行流程有一个基本的认识与了解,重点学习翻译环境中的几大过程,希望通过本篇的讲解能让你对代码到程序的转化有基本的认识,一起加油吧!!!1.翻译环境与运行环境计算机只能识别二进制的信息,而我们用c语言写成的代码都是文本信息,所以要想把c语言的代码执行就需要把文本信息转换为二进制信息在 ANSI C的任何⼀种实现中,存在。第1种是,在这个环境中源代码被转换为二第2种是,它用于实际执行代码。1.2 翻译环境。原创 2024-06-15 23:59:08 · 1260 阅读 · 68 评论 -
C语言——文件操作
在之前我们写的程序中当程序结束,内存就被回收数据就丢失了,那么在计算机中的那些需要保存写下的数据时,只把数据写到内存当中就无法一直保留,如果要将数据进行持久化的保存这时就需要再将数据传输到磁盘(硬盘)的文件上。这本篇中我们就来了解文件是什么、有哪些类型的文件,以及学习在程序中实现文件的读和写,还有实现读和写相关的函数,相信看完本篇的讲解能对文件有一定的认识,加油吧!!!原创 2024-06-12 16:23:32 · 1682 阅读 · 62 评论 -
动态内存管理
在本篇当中我们将对动态内存相关的知识进行学习,了解malloc,calloc等函数的作用以及学习如何使用这些函数,并且避免一些常见的动态内存中的错误,还有学习柔性数组是什么,有什么作用。接下来就开始本篇的学习吧!!!原创 2024-06-09 23:32:40 · 1886 阅读 · 66 评论 -
自定义类型:枚举和联合体
也可以用define来定义常量,当这种方式相比枚举类型就使得可读性下降了,在此的define定义的就没有明确的意义,且定义红的作用域是整个工程,如果我们只是想在一部分使用就无法实现。在之前我们已经深入学习了自定义类型中的结构体类型 ,了解了结构体当中的内存对齐,位段等知识,接下来在本篇中将继续学习剩下的两个自定义类型:枚举类型与联合体类型,一起加油!联合的成员是共用同一块内存空间的,这样⼀个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员),因此联合体也叫共用体。原创 2024-06-06 13:48:53 · 1399 阅读 · 49 评论 -
C语言——内存函数
在src原创 2024-06-05 17:09:53 · 2065 阅读 · 55 评论 -
自定义类型:结构体类型
在学习完指针相关的知识后将进入到c语言中又一大重点——自定义类型,在之前学习操作符以及指针时我们对自定义类型中的结构体类型有了初步的了解,学习了结构体类型的创建以及如何创建结构体变量,还有结构体成员操作符的使用,现在我们将继续结构体相关知识的学习,希望在在看完本篇后你将会有新的收获,一起加油吧!!!原创 2024-06-02 19:27:39 · 1501 阅读 · 63 评论 -
数据在内存中的存储
这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着⼀个字节,⼀个字节为8bit 位,但是在C语⾔中除了8 bit 的 char 之外,还有16 bit 的 short 型,32 bit 的long 型(要看具体的编译器),另外,对于位数⼤于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于⼀个字节,那么必然存在着⼀个如何将多个字节安排的问题。这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1。原创 2024-05-31 17:25:49 · 1424 阅读 · 55 评论 -
字符函数与字符串函数
在实现strstr的过程中str1表示目标查找字符串的首元素的地址,str2表示要查找的字符串首元素的地址,但由于在遍历过程中需要多次从找到第一个元素相同时在查找从这个位置开始的是否和查找目标相同,因此就再创建了。,当我们在使用标准库中的函数的时候发生了某种错误,就会将对应的错误码,存放在errno中,而⼀个错误码的数字是整数很难理解是什么意思,所以每一个错误码都是有对应的错误信息的。• 如果src指向的字符串的长度小于num的时候,只会将字符串中到\0 的内容追加到dest指向的字符串末尾。原创 2024-05-27 23:34:54 · 1828 阅读 · 65 评论 -
深入理解指针(5)
3. 指针运算笔试题解析在之前的中我们学习了回调函数相关知识,并且学会了如何使用库函数qsort,以及模拟实现了qsort,接下来在本篇中将对srtlen和sizeof进行细致的讲解,并对相关的题型进行讲解,一起加油吧!!!原创 2024-05-26 01:54:17 · 1771 阅读 · 66 评论 -
整型提升与算数转换
表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度⼀般就是int的字节长度,同时也是CPU的通用寄存器的长度。如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换。由于在vs中char编译器默认为signed char,所以a和b都是按照变量的数据类型的符号位来整形提升的。中的a和b的值被提升为普通整型后然后再执行加法运算,加法运算完成之后,结果将被截断,然后再存储于a中。原创 2024-05-21 23:48:15 · 1432 阅读 · 39 评论 -
深入理解指针(4)
1.回调函数在学习之前的深入理解指针(3)中我们对字符指针以及函数指针,函数指针数组等知识进行了深入的理解,并且使用这些知识了解了二维数组传参的本质;利用函数指针数组实现转移表,现在将继续学习指针更多的知识,一起加油吧!!!1.回调函数回调函数就是。如果你把函数的作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。原创 2024-05-19 23:33:12 · 1382 阅读 · 98 评论 -
深入理解指针(3)
列可以省略,这是因为形参接收的是一个数组指针,只知道传过来的数组有几个元素,形参内的列没有意义,写上只是便于理解。,存放的元素类型是整形,是一个指针数组,所以正确的写法是先让p与*结合使得p是一个指针变量,这就需要将p用括号括起来,通过之前的学习我们知道数组是一个存放相同类型数据的存储空间,所以可以得出函数指针数组是指数组内的。1.在以上代码中是将运算函数的地址存放在数组内,通过数组的下标就可以找到相应的运算函数,总结:二维数组传参,形参的部分可以写成数组,也可以写成指针形式,但形参本质接收的是指针。原创 2024-05-18 14:26:47 · 1225 阅读 · 66 评论 -
深入理解指针(2)
1. 数组名的理解在上一篇深入理解指针(1)中我们已经初步了解指针地址;指针的解引用;指针变量类型作用,指针运算等知识,接下来我们将继续学习指针的相关内容,一起加油吧!!!1. 数组名的理解在之前的学习中我们知道可以将一串数字存放在整形指针当中,而且指针在内存当中存放是连续的,就可以通过取地址的方式找到数组当中想要的元素在之前还提到过在函数实参中数组名表示首元素的地址,那在指针中这样规律是否还适用呢?通过以上代码发现&arr[0]与arr的地址是相同的,因此可以得出那是在所有条件下都成立吗?原创 2024-05-15 13:09:38 · 1671 阅读 · 80 评论 -
assert断言
1.assert断言介绍1.assert断言介绍1.使用方法assert.h 头头件定义了宏,用于在运行时确保程序符合指定条件,如果不符合,就。这个宏常常被称为。例如在以上代码中就可以用assert断言来替代if语句assert() 宏接受⼀个表达式作为参数。如果该表达式为真(返回值非零,程序继续运行。如果该表达式为假(返回值为零),,在标准错误流(屏幕上) stderr 中写入⼀条,显示没有通过的表达式,以及包含这个表达式的真如以上所示,当assert后表达式为假时候就会。原创 2024-05-12 21:00:32 · 1119 阅读 · 50 评论 -
深入理解指针(1)
在之前我们学习了许多c语言的基础知识,让我们初步了解了c语言,接下来将来到c语言中一个重点的知识章节--,学习完指针后将会让我们对c语言有更深入的理解,接下来就开始指针的讲解在了解内存与地址前,先来看一个生活中的案例我们都知道当到一个陌生的楼房里时,,如果这个楼房很大通过去查找将会是一个快速找到的方法,如果得到房间号,就可以快速的找房间在生活中有了门牌号就可以快速找到房间,大大提升了效率如果把上面的例子对照到计算机中,又是怎么样呢?原创 2024-05-11 22:59:59 · 1591 阅读 · 58 评论 -
用c语言实现扫雷游戏
在学习c语言一段时间后,在掌握以及!!原创 2024-04-24 18:54:06 · 1185 阅读 · 13 评论 -
c语言——函数
库函数很重要但在c语言中更重要的是自定义函数,有了自定义函数我们才能写出不一样的代码,让我们更具有创造性。我们可以把函数想象成小型的⼀个加工厂,工厂得输入原材料,经过工厂加工才能生产出产品,那函数也是一样的,函数⼀般会输入一些值,这些值也就是参数(可以是0个,也可以是多个),经过函数内的计算,得出结果。在以上某年某月有多少天的程序中就实现了函数的定义与调用如果将自定义函数放在main函数后会发生什么呢?这时我们就会看到以下警告出现这种情况的原因是。原创 2024-05-02 23:07:48 · 1418 阅读 · 27 评论 -
c语言常用操作符(2)
移位操作符分为注:移位操作符的操作数只能是整数,同时移位操作符移动的是存储在内存中的二进制位(也就是补码)同时移位操作符不要移动负数位,这个是标准未定义的。1.原创 2024-05-08 17:00:38 · 1733 阅读 · 79 评论 -
c语言常用操作符(1)
在c语言中如% / * + -等都是算数操作符,并且这些操作符都是双目操作符(注:双目操作符是包含两个操作数的,位于操作数两边)+和-操作符是用来分别执行加法和减法运算的 以下代码是这两个操作符使用一个举例输出结果为11, 3*操作符是用来执行乘法运算的 以下代码是这两个操作符使用一个举例d1 d2输出依次为50 ,14.520000%和/操作符是用来分别用来执行除法和求模运算的在含%的表达式中计算结果是两个整数的余数,注意该操作符只能用于整数不能用于浮点数的计算。原创 2024-04-12 14:18:04 · 1095 阅读 · 8 评论 -
c语言中的循环语句
在c语言的循环语句里有do while语句while语句for语句。原创 2024-04-16 21:36:22 · 786 阅读 · 7 评论 -
c语言中的分支语句
在c语言中可用和实现选择结构其中if语句用来实现的选择,switch用来实现的选择结构。原创 2024-04-13 23:46:43 · 936 阅读 · 5 评论