C语言系列
文章平均质量分 74
小明的c++笔记本
别高估自己的短期能力而低估长期努力
展开
-
C/C++【程序环境和预处理】
这些预定义符号都是语言内置的__FILE__//进行编译的源文件__LINE__//文件当前的行号__DATE__//文件被编译的日期__TIME__//文件被编译的时间__STDC__//如果编译器遵循ANSIC,其值为1,否则未定义//文件被编译的日期printf("%d\n",__LINE__);//输入当前行号return0;}语法10000break;caseregister()*注意这个宏存在一个问题观察下面的代码段().........原创 2022-08-01 20:01:44 · 292 阅读 · 66 评论 -
【C语言】文件操作
缓冲区的大小根据C编译系统决定的。至于结构体FILE里面的内容我们可以暂时不管,因为每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件(直接打开一般是乱码).原创 2022-07-27 14:21:59 · 477 阅读 · 109 评论 -
【深入理解C】动态内存管理
大家在编写C程序的时候,是否会遇到数组空间不够大,一次性把空间开大了,又会造成空间开销浪费等内存大小相关问题不得其解的时候呢?那么这一章内容将会给你带来解决这类问题的好办法——.........原创 2022-07-17 21:45:29 · 1504 阅读 · 56 评论 -
你了解过<string.h>里的函数吗,今天带你模拟实现代表性函数
写过C语言的朋友相信都使用过strlen函数计算字符串长度,strcmp判断过字符串是否相等…而这些函数所需的头文件就是,那你是否好奇过里面的函数是怎样实现的呢,要是将来有人想让你模拟实现一下strlen这个函数,你是否能写出呢?这次将给各位带来里的一些字符串与内存相关函数的模拟实现,但并非跟C语言库里一模一样,只是一种参考实现!!!易错点:strlen函数的模拟实现主要是捉住字符串是以 ’ \0 ’ 为结束标志,进行字符串的长度。这边我给出三种模拟实现的方式:方....................原创 2022-07-13 13:39:17 · 840 阅读 · 50 评论 -
这几十道指针与数组结合的题目,你能做对几题?
很多时候我们以为学会了理论知识,就好像学了C语言的指针,但是感觉啥也不懂,所谓“一学就会,一做就废”,相信大家都有所感受!其实所谓以为,讲实了,就是自己以为,本质还是不理解(狗头保命doge)“实践是检验唯一的标椎”,不会?练就完事了!所以这次给大家分享几十道指针和数组(含二维数组)下面程序输出什么?详解:提升难度问题延伸下列程序输出什么详解:再作延伸下面输出什么?详解:最后一击(压轴)最后的压轴是二维数组啦!下面输出结果是什么?详解:总结如果你能无压力的做原创 2022-07-10 14:10:14 · 7970 阅读 · 50 评论 -
【深入理解指针】指针的进阶
目录📌一些常见指针的用法和意义📌指针数组📌数组指针📌函数指针📌函数指针数组常见的指针有以下几种指针的初阶用法就是认识并能熟练使用像char*,int*等一些用法,比如说实现一个交换两个整数的函数,你要知道实参和形参的区别,也就是为什么要传指针。这些就是一些初阶用法。而指针的意义是什么呢?其实指针类型的意义就是:决定了每一次访问内存的的大小我们经常在定义指针的时候是不是都是按照它的类型进行定义的,比如是int类型,就定义一个int*,char类型就定义一个char*,其实你可以想象一下,地址全都是占.....原创 2022-06-06 07:32:47 · 1733 阅读 · 70 评论 -
【用四道刁钻例题带你理解】数据在内存中存储的方式
本章带你了解1. 什么是大小端字节序及怎么判断大小端?2.整形在计算机内是怎么存放的?3.浮点型在计算机内是怎么存放的4.运用上面知识解决一些可能写出bug的案例目录1.💻 C语言数据类型介绍2. 💻 整形在内存中存放方式3. 💻 浮点型在内存中存放方式💻 C语言数据类型介绍我们学过的基本内置类型有以下一些char ------------ //字符数据类型short ----------- //短整型int.原创 2022-05-28 12:15:32 · 1396 阅读 · 53 评论 -
【一篇文章带你重温重点】C语言操作符
文章目录🚲算术操作符🚲移位操作符🚲位操作符🚲赋值操作符🚲单目操作符🚲关系操作符🚲逻辑操作符🚲算术操作符加( + ) 减( - )乘( * )除( / ) 取模( % )算术操作符是我们日常用的最多的,也是大家最熟悉不过的。🌟要注意以下几点1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3. % 操作符的两个操作数必须为整数。返回的是整除之后的余..原创 2022-05-19 08:10:01 · 1107 阅读 · 71 评论 -
“纯C”实现——扫雷游戏(递归实现展开功能)
文章目录📺游戏动画演示🚀扫雷实现思路🚀棋盘实现🚀布置雷实现🚀玩家扫雷实现🚀小结语🚗text.c文件🚗game.h文件🚗game.c文件📺游戏动画演示游戏实现完成的模样:🚀扫雷实现思路实现扫雷游戏的前提是要知道:>扫雷游戏的玩法(会玩的跳过这步)扫雷游戏也就是排雷,让玩家点一个坐标,然后显示该坐标周围八个格子有多少个雷如图所示:如果踩到雷了就游戏结束,如图那如果把全部非雷的位置找了出来那么游戏就胜利!那么知道了游戏的规则,我们就可以大概知道要实现.原创 2022-05-08 08:36:23 · 4611 阅读 · 60 评论 -
字符串逆序不一样的解法(递归)
目录✨常规解法✨不一样的解法(递归)前言前段时间在做题的时候,看见一题字符串逆置的题目,刚开始我寻思着这不挺简单的吗?我咔咔开始写,后来发现题目要求居然要我用递归求解!!那时刚学完C语言函数,只是短短认识了几个递归求解的题目。我滴亲娘,该怎么搞呀!没办法了,当时只能找教程了,现在我就再复刻一下当时的题目,教大家如果用递归逆置字符串!下面第一个是常规解法:✨常规解法常规解法就是用left指向第一个下标,用right指向倒数一个下标,将第一个和倒数第一个交换,然后移动左右下标,再.原创 2022-04-27 22:21:49 · 1451 阅读 · 19 评论 -
Quicksort快速排序
快速排序中心思想快速排序操作实现快速排序中心思想百度描述->快速排序算法通过多次比较和交换来实现排序,其排序流程如下 (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大.原创 2022-04-19 00:45:00 · 1015 阅读 · 24 评论 -
简单快速过一遍分支语句和循环语句
分支语句循环语句原创 2022-04-18 03:15:00 · 656 阅读 · 20 评论 -
详解C语言关键字-static的三种用法
🌴作用域和生命周期的介绍🌴static修饰局部变量🌴static修饰全部变量🌴static修饰函数作用域和生命周期的介绍什么样的变量称为局部变量呢?看图就知道了>>,这里的b,c都为局部变量,只有a为全局变量。作用域作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。总结局部变量的作用域是变量所在的局部范围。全局变量的作用域是整个工程。生命周期变量的.原创 2022-04-12 21:38:24 · 2213 阅读 · 24 评论 -
细讲qsort函数用法
🚩qsort函数介绍🚩qsort函数使用方法前言✨上一期发的模仿qsort实现一个冒泡排序的通用算法可能有一些小伙伴不会使用或者不了解qsort函数的使用,这一期带大家细讲一下qsort函数!qsort函数介绍qsort函数是C语言提供一个库函数,主要用于排序各种类型的数据,是一个通用的排序函数,排序内核思想使用的是快速排序。头文件 - include<stdlib.h>描述C 库函数void qsort(void* base, size_t nitems, s.原创 2022-04-11 09:49:59 · 276 阅读 · 10 评论 -
模仿qsort实现一个冒泡排序的通用算法
C语言库函数的qsort排序函数你真的理解吗?qsort函数介绍在一些编程题中经常需要你按照某个指标按照从小到大或从大到小输出一些数据,这时你可以自己写一个排序函数进行排序,但是其实C语言函数库中.原创 2022-04-07 18:16:41 · 1446 阅读 · 11 评论 -
C语言——测试电脑大小端
首先要知道什么大端小端:大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。为什么有大端和小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8比特位原创 2022-03-27 21:58:16 · 2575 阅读 · 2 评论 -
C语言——约瑟夫环问题(链表解决)
问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。#include<stdio.h>struct stu //先创建一个结构体{ int num; struct stu* next;};int main(){ struct stu stu1[13];//定义一个结构体数组 int i; for.原创 2022-03-20 17:13:41 · 1982 阅读 · 0 评论 -
C语言——结构体和结构体数组的定义和使用
为了更好的看懂,我们可以从一个简单的问题循序渐进问题描述:1编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。第一题代码实现#include<stdio.h>struct Stu //创建一个结构体类型{ int num; char name[20]; float score[3];};v...原创 2022-03-19 23:19:25 · 9648 阅读 · 1 评论 -
C语言——二分查找
在一个有序的数组中查找元素代码如下//二分查找 #include<stdio.h>int main(){ int right, left, num,count ,arr[] = {1,2,3,4,5,6,7,8,9,10}; right = sizeof(arr) / sizeof(arr[0]); //计算数组长度,把值赋给right left = 0; scanf("%d", &num); while (left <= right) //如果lef.原创 2022-03-16 17:04:25 · 1384 阅读 · 0 评论 -
C语言——冒泡排序
冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。代码如下#include<stdio.h>void BBsort(int arr[], int size){ int j,i,tem; for (i = 0; i ..原创 2022-03-13 14:21:04 · 441727 阅读 · 94 评论 -
C语言——猜数字小游戏
实现一个猜数字的小游戏>首先要用的c语言的随机生成数,在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为:a=rand() , rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。#include <stdio.h>#include <stdlib.h>int main(){ int a = rand(); printf("%d\n",a); retur..原创 2022-03-12 19:55:27 · 6003 阅读 · 5 评论 -
细讲C语言结构体(结构体内存对齐你懂了吗?)
结构体内存对齐你知道吗?结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参原创 2022-04-04 14:34:22 · 444 阅读 · 15 评论