![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 67
qiyi.sky
我可复杂,简介不了。(doge)
展开
-
C语言学习记录——鹏哥字符分类函数、字符转换函数
C语言学习记录——鹏哥字符分类函数、字符转换函数。isspace空白字符:空格‘ ’,换页‘\f’,换行‘\n’,回车‘\r’,制表符‘\t’或者垂直制表符‘\v’isdigit十进制数字0~9isxdigit十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~Fislower小写字母a~zisupper大写字母A~Zisalpha字母a~z或A~Zisalnum字母或数字,a~z,A~Z,0~9原创 2023-01-25 15:11:23 · 58 阅读 · 0 评论 -
C语言学习记录——通讯录(静态内存)
【代码】C语言学习记录——通讯录(静态内存)原创 2023-02-21 22:45:22 · 315 阅读 · 0 评论 -
C语言学习记录——内存函数(memcpy、memmove、memcmp、memset、模拟实现memcpy、模拟实现memmove)
C语言学习记录——内存函数(memcpy、memmove、memcmp、memset、模拟实现memcpy、模拟实现memmove)。注:memcpy函数应该拷贝不重叠的内存而memmove函数才是应该拷贝重叠内存的,我们以上实现的my_memcpy函数是以这个标准为主的在VS中,memcpy既可以拷贝不重叠内存,也可以拷贝重叠内存。原创 2023-01-31 21:29:14 · 148 阅读 · 0 评论 -
初阶编程题积累(1)------[C语言]
编程题积累。(C语言)正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的的最小公倍数。将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I原创 2023-01-11 00:42:14 · 69 阅读 · 0 评论 -
初阶编程题积累(2)------[C语言]
初阶编程题积累(2)------[C语言]小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。例如:半径的平方如果为25优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。原创 2023-01-11 23:46:12 · 60 阅读 · 0 评论 -
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)。联合体与之前的结构体、位段、枚举一样,也是自定义类型的一种。这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合体也叫共用体)。联合体的大小至少是最大成员的大小。当最大成员大小不是最大对齐数的整数倍时,就要对齐到最大对齐数的整数倍。原创 2023-02-10 00:01:27 · 1025 阅读 · 0 评论 -
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)
C语言学习记录——数据的存储(数据类型、类型的基本归类、整型在内存中的存储、大小端介绍、浮点型在内存中的存储)。大端存储模式是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中。小端存储模式是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。原创 2023-01-18 00:33:51 · 92 阅读 · 0 评论 -
C语言学习记录——操作符习题、算数转换习题,多解法&优解法&单选题
操作符习题、算数转换习题,多解法&优解法&单选题(统计一个数二进制中1的个数、求两个数二进制中不同位的个数、打印整数二进制的奇数位和偶数位、交换两个变量(不创建临时变量)、以下系统中,int类型占几个字节,指针占几个字节,操作系统可以使用的最大内存空间是多大、判断代码输出的结果)原创 2023-01-08 23:31:48 · 46 阅读 · 0 评论 -
C语言学习记录——调试技巧(VS2019环境下)
C语言学习记录——调试技巧(VS2019环境下)调试解决的就是代码的运行时错误。关于调试的一些快捷键一、i和arr是局部变量,局部变量是放在栈区上的栈区内存的使用习惯是:先使用高地址空间,再使用低地址空间。二、数组随着下标的增长地址是由低到高变化的原创 2023-01-06 20:28:48 · 155 阅读 · 0 评论 -
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针。(注:strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。)原创 2023-01-24 16:05:57 · 89 阅读 · 0 评论 -
C语言学习记录——位段(内存分配、位段的跨平台、位段的应用)
C语言学习记录——位段(内存分配、位段的跨平台、位段的应用)。1.位段的成员可以是int unsigned int signed int 或char(属于整型家族)类型2.位段的空间上是按照需要,以4个字节(int)或1个字节(char)的方式来开辟的。3.位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使用位段。原创 2023-02-08 01:19:50 · 207 阅读 · 0 评论 -
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)。1.增加代码的可读性和可维护性。2.和#define定义的标识符比较,枚举有类型检查,更加严谨。3.防止了命名污染(封装)。4.便于调试。5.使用方便,一次可以定义多个常量。原创 2023-02-08 23:09:19 · 453 阅读 · 0 评论 -
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
【代码】C语言学习记录——模拟字符串相关函数(strcpy、strlen)相关知识-const、typedef。原创 2023-01-07 21:21:09 · 67 阅读 · 0 评论 -
C语言学习记录——结构体(声明、初始化、自引用、内存对齐、结构体设计、修改默认对齐数、结构体传参)
C语言学习记录——结构体(声明、初始化、自引用、内存对齐、结构体设计、修改默认对齐数、结构体传参)。存在内存对齐的原因1.平台原因(移植原因)不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2.性能原因数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次访问;而对齐的内存访问仅需要一次访问。原创 2023-02-07 23:50:55 · 432 阅读 · 0 评论 -
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)整理出了个人觉得操作符中容易出错或者需要多加注意的知识点。原创 2023-01-03 21:07:29 · 223 阅读 · 0 评论 -
C语言学习记录——动态内存开辟常见的错误
C语言学习记录——动态内存开辟常见的错误。内存泄漏 (Memory leak)是在 计算机科学 中,由于疏忽或错误造成程序未能释放已经不再使用的 内存 。. 内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。原创 2023-02-24 12:00:00 · 116 阅读 · 0 评论 -
C语言学习记录——动态内存习题(经典的笔试题)、C/C++中程序内存区域划分
GetMemory函数内部创建的数组是在栈区上的,该函数结束,p数组的空间就还给了操作系统;返回的地址是没有实际的意义的,如果通过返回的地址去访问内存,就是非法访问。钱内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。但是被static修饰的变量存放在数据段(静态区),数据段的特点是在上面创建的变量,直到程序结束才销毁。实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量出了作用域就销毁。此处的ptr为野指针,没有经过初始化,使用不了。的存储单元都可以在栈上创建,函数。原创 2023-02-27 21:47:12 · 124 阅读 · 0 评论 -
C语言学习记录——通讯录(动态内存)
相比于静态内存的版本,动态内存的通讯录类型应该要维护3个变量。分别为:记录动态开辟内存的指针、当前通讯录录入了多少个人、当前通讯录的容量是多少。在后续的各项操作中,“添加联系人”涉及到动态内存的扩容,“退出通讯录”涉及到动态内存的释放,所以是需要进行修改的。给data在堆区上申请一块连续的空间,将capacity初始化为当前的最大容量。我们假定现在通讯录初始可以存储3个人的信息,当存满了之后一次扩容2个空间。退出通讯录这一项需要多一项销毁通讯录的操作,销毁在堆区上的内存。,现在把它修改成为动态版的。原创 2023-02-23 16:00:00 · 155 阅读 · 0 评论 -
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
malloc是一个申请内存的函数,size表示要申请的内存的空间大小。这个函数的返回值有两种情况,一是在成功申请空间时,返回一个指向这个空间起始地址的void型指针变量;二是当可用内存不足,内存申请失败,则是返回NULL。free函数是用来释放动态开辟的内存。如果参数memblock指向的空间不是动态开辟的,则这个行为是错误的。(或者说free函数的行为是未定义的)如果参数memblock是NULL指针,则free函数不起任何作用。calloc函数也是用于动态内存分配的,其功能是为。原创 2023-02-22 22:48:17 · 202 阅读 · 0 评论 -
C语言进阶——文件的读写(文件使用方式、文件的顺序读写、常用函数、fprintf、fscanf)
文件使用方式 含义 如果指定文件不存在“r”(只读) 为了输入数据,打开一个已经存在的文本文件 出错“w”(只写) 为了输出数据,打开一个文本文件 建立一个新的文件“a”(追加) 向文本文件尾添加数据 建立一个新的文件“rb”(只读) 为了输入数据,打开一个二进制文件 出错“wb”(只写) 为了输出数据,打开一个二进制文件 建立一个新的文件FILE* stderr -标准错误流(屏幕)FILE* stdout -标准输出流(屏幕)FILE* stdin -标准输入流(键盘)原创 2023-08-02 08:00:00 · 135 阅读 · 0 评论 -
C语言进阶——文件的打开(为什么使用文件、什么是文件、文件的打开和关闭)
在程序设计中,一般讲的文件有两种:程序文件、数据文件(从文件功能的角度来分类的) 。程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。以前我们处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。但是我们更多的时候是需要把信息输出到磁盘上,当需要的时候再从磁盘上原创 2023-07-30 08:00:00 · 295 阅读 · 0 评论 -
C语言学习记录——将三位数的个十百位单独打印,并求其和。
【代码】C语言学习记录——将三位数的个十百位单独打印,并求其和。原创 2022-12-09 11:34:19 · 935 阅读 · 2 评论 -
C语言学习记录——用递归思想求第n个斐波那契数,函数递归
C语言学习记录——用递归思想求第n个斐波那契数,函数递归原创 2022-12-10 17:20:40 · 4378 阅读 · 1 评论 -
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
扫雷游戏项目将预设建立一个头文件和两个源文件,如:game.c test.c game.htest.c ——扫雷游戏的测试game.c ——游戏函数的实现game.h ——游戏函数的声明下面先实现扫雷基本的功能,再尝试完整实现扫雷的功能,可根据目录跳转。原创 2022-12-13 16:56:20 · 368 阅读 · 0 评论 -
C语言学习记录——鹏哥二分法查找数组中元素 复习整理
【代码】C语言学习记录——鹏哥二分法查找数组中元素 复习整理。原创 2022-12-09 12:38:15 · 376 阅读 · 1 评论 -
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)
在C语言中,定义了函数之后,系统为该函数分配一段连续的存储空间。其中函数的起始地址称为该函数的入口地址,将此地址赋给另外一个变量,则该变量为一个指向函数的指针。指向函数的指针变量的一般形式为:类型说明符(* 标识符)();其中,类型说明符为被指针所指向的函数的返回值的数据类型;标识符为一个指针名(不是函数名),该指针只能指向函数;括号中为空,但括号必须有,表示该指针是专指函数的。int (*p)();调用函数,通常得到一个返回值带回主调函数。如果返回值为一个指针时,则该函数就是指针型函数。原创 2022-12-20 16:15:53 · 127 阅读 · 0 评论 -
C语言学习记录——计算一个数的每位之和(递归实现)
输入一个数,求出这个数的每位之和。如输入2048,输出结果14。原创 2022-12-12 11:24:03 · 245 阅读 · 0 评论 -
C语言小插曲——对图形库的初步探索(消除小球小游戏)
【代码】C语言小插曲——对图形库的初步探索(消除小球小游戏)原创 2022-12-15 17:44:39 · 119 阅读 · 0 评论 -
C语言学习记录——矩阵转换(定义一个数组实现或定义两个数组实现)
int main(){//根据题目要求,建立两个二维数组//arr存储转置前的矩阵,num存储转置后的矩阵//row-行号下标,col-列号下标//将原来的矩阵打印出来row < 2;col++){}}//将转置的矩阵存进数组numrow < 3;col++){}}//打印出新的矩阵row < 3;}原创 2022-12-11 16:51:15 · 1328 阅读 · 0 评论 -
C语言学习记录——复习数据存储类别(auto、register、static、extern)
【C语言】数据的存储类别——auto、register、static、entern修饰符原创 2022-12-18 22:02:45 · 971 阅读 · 0 评论 -
C语言学习记录——找数组中的鞍点
鞍点指一个矩阵中,即该位置上的元素在该行上最大,在该列上最小。一个二维数组可能没有鞍点。例如:1,2,3该矩阵中,鞍点为3所在的位置。即数组坐标[ 0 ] [ 2 ],在第一行第三列中。原创 2022-12-10 14:52:21 · 3912 阅读 · 5 评论 -
C语言进阶——sprintf与sscanf、文件的随机读写(fseek、ftell、rewind)
经过上面的一系列操作之后,如果找不到原来的文件指针的位置到哪里了,就可以使用rewind函数重置文件指针。与sprintf相反,sscanf函数是将字符串转化成格式化的数据。这两个函数的作用是与序列化与反序列化有关的,目前只做简单了解。从一个字符串中转化成一个格式化的数据 (反序列化)printf 是针对标准输出的格式化输出语句。fprintf 是针对所有输出流的格式化语句。scanf 是针对标准输入的格式化输入语句。根据文件指针的位置和偏移量来定位文件指针。让文件指针的位置回到文件的起始位置。原创 2023-08-04 08:00:00 · 228 阅读 · 0 评论