C语言
文章平均质量分 76
分享C语言相关知识
呆呆兽学编程
好好学习技术,分享编程知识
展开
-
C语言篇——程序的编译
今天我来补一下C语言篇的程序的编译的一篇文章,也算是有一个结尾了。目录程序的翻译环境和执行环境编译和链接翻译环境编译的几个阶段预处理编译汇编链接运行环境程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境 :第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境 ,它用于实际执行代码。一个.c的文件事如何变成.exe的可执行文件的呢?下面这张图片是一个大概的过程:编译和链接翻译环境组成一个程序的每个源文件通过编译过程分别转换成.原创 2021-11-26 21:33:09 · 3658 阅读 · 21 评论 -
C语言之动态内存管理(动态内存分配+经典笔试题+柔性数组)[建议收藏]
本篇文章我要给大家梳理一下C语言中的动态内存管理相关知识。其中主要包括如何进行动态内存管理、一些常见的动态内存错误及柔性数组的介绍。❤️ 博主码云gitee链接:https://gitee.com/byte-binxin ❤️文章目录为什么存在动态内存分配动态内存管理malloc和freecallocrealloc常见的动态内存错误对NULL进行解引用操作对动态开辟空间的越界访问对非动态开辟的空间进行free释放使用free释放一块动态开辟内存的一部分对同一块动态内存进行多次free释放动态开辟内存.原创 2021-10-04 13:15:24 · 612 阅读 · 13 评论 -
C语言中的文件操作你了解多少?快来看看吧
本片文章我要给大家介绍一下文件是什么,文件分为哪几种类型,C语言中是如何对文件进行操作今天我就来给大家介绍一下~博主码云gitee链接:https://gitee.com/byte-binxin(需要代码自取)文章目录什么是文件程序文件数据文件文件名文件类型文件指针文件的打开与关闭文件的顺序读写知识普及-流字符输出函数fputc字符输入函数fgetc文本行输出函数puts文本行输入函数gets格式化输出函数fprintf格式化输入函数fscanf二进制输出fwrite二进制输入fread对比一组.原创 2021-10-01 11:05:06 · 543 阅读 · 11 评论 -
用冒泡排序模拟实现qsort函数
昨天大概讲解了一下qsort函数及其简单应用。我们再看一遍qsort函数:void qsort(void * base, int size, int num, int(*cmp)(void *, void *));下面我们用冒泡排序模拟实现一下,如下:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>#include <string.h>//void ..原创 2021-05-24 23:58:47 · 224 阅读 · 5 评论 -
左旋字符串
左旋字符串左旋字符串就是将一段字符串当成一个圈,向左移动几位,同理也有右旋字符串,举个左旋字符串的例子,"abcdef"向左旋转三位结果就是"defabc",要实现这个结果,我们可以分三步解决,如下:1.将"abc"逆序得到"cba";2.将"def"逆序得到"fed";3.将"cbafed"逆序得到"defabc"。首先,我们先实现一下字符串逆序函数:void reverse(char*left, char*right){ assert(left != NULL); as.原创 2021-06-01 00:12:18 · 248 阅读 · 1 评论 -
C语言实现通讯录管理系统(结构体+枚举+动态内存开辟+文件操作+线性表存放数据)
红心原创 2021-09-26 17:16:19 · 1075 阅读 · 22 评论 -
利用函数指针数组(回调函数)实现转移表
今天我们先来了解一下什么是函数指针数组。数组是一个存放相同类型数据的存储空间,如果我们要把多个函数的地址存起来,就要用到函数指针数组了。那么函数指针数组应该如何定义呢?int (*parr[])();由于"*"的优先级低于“[]”,所以parr先与[]结合,说明parr是一个数组,数组内容是int(*)()类型的函数指针。了解函数指针数组后,它究竟有什么用处呢?我举个例子简单运用一下。例子:计算器(如下)#include <stdio.h>int add(int.原创 2021-05-22 23:45:08 · 316 阅读 · 8 评论 -
指针进阶—指针和数组笔试题解析[建议收藏](二)
目录写在前面指针笔试题笔试题1写在前面上一篇博客我已经为大家讲解了数组内容,大家可以先参照上一篇博客——指针进阶—指针和数组笔试题解析[建议收藏]()。这篇文章我接着上一篇继续讲解指针有关的内容。指针笔试题笔试题1int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf( "%d,%d", *(a + 1), *(ptr - 1)); return 0;}上述代码运行原创 2021-09-21 20:53:03 · 927 阅读 · 8 评论 -
指针进阶—指针和数组笔试题解析[建议收藏](一)
目录写在前面指针和数组笔试题解析知识普及-数组名的意义一维数组之sizeof笔试题字符数组1sizeof笔试题strlen笔试题字符数组2写在前面本期文章我要给大家来分析一组经典的指针和数组笔试题。指针在编程中的用处十分的广,指针可以存放不同数据类型的指针变量,从而可以操控内存,且很多公司在面试的时候都喜欢出相关的笔试题所以能够熟练的了解并且掌握是必要的。许多人都对指针感到惧怕,多事因为没能理解其中的精髓。今天我就来带大家分析一下这一些笔试题。指针和数组笔试题解析知识普及-数组名的意义做题前,原创 2021-09-13 17:48:31 · 355 阅读 · 6 评论 -
函数栈帧的创建与销毁
这里写自定义目录标题写在前面函数栈帧的创建与销毁了解两个寄存器ebp和esp函数栈帧创建与销毁的具体过程main函数的函数栈帧变量的创建Add函数栈帧的创建与销毁回到main函数总结写在前面在我们前期的学习编程的过程中,我们会遇到许多诸如:“局部变量是如何创建的?”、“形参和实参有什么关系?”、“为什么局部变量是随机值?”、“函数调用时如何调用的?”等等的一些问题,今天我就来给你们讲解一下VS2013编译器下的函数栈帧的创建与销毁,当然不同的编译器底下的这个过程有略微的差异,大体上还是相同的。函数栈原创 2021-08-26 22:02:02 · 228 阅读 · 3 评论 -
回调函数之qsort()快排函数
回调函数昨天已经提到,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。关于qsot()函数,我们之前也有所了解冒泡排序,也是一种不错的排序,但效率不高,且不能同时对多种不同类型的数据进行排序。今天我们要说的qsort()函数就可以对不同类型数据进行排序,我们先简单看一下这个函数:vo原创 2021-05-23 23:42:26 · 261 阅读 · 0 评论 -
判断一段字符串是否为另一段字符串的左旋字符串
上一篇文章已经讲到左旋字符串,下面我们来看一下这样一道题:判断字符串"abcdefg"是否为字符串"cdefgab"的左旋字符串。拿到这样一道题,我们可以联想到左旋字符串,可以将字符串左旋一位,再进行比较,不行,再左旋一位,知道所有情况都试过了,说明不是左旋字符串。有以下竞争情况:1.bcdefga 2.cdefgab 3.defgabc 4.efgabcd 5.fgabcde 6.gabcdef 7.abcdefg用代码实现如下:#include <stdio.h>#inc原创 2021-06-01 01:09:26 · 1360 阅读 · 2 评论 -
字符串函数的介绍与模拟实现(二)
目录引言引言上面一篇文章已经讲到四个字符串函数的模拟实现(字符串函数的介绍与模拟实现(一)),今天我们来聊一聊strncpy,strncat,strncmp这几个函数。原创 2021-06-08 07:27:56 · 174 阅读 · 4 评论 -
字符串函数的使用与模拟实现(一)
目录引言一、strlen函数的介绍与模拟实现strlen函数的介绍strlen函数的模拟实现二、strcpy函数的介绍与模拟实现strcpy函数的介绍strcpy函数的模拟实现引言C语言中由于字符串这个数据类型,所以通常把字符串存放在常量字符串或字符数组里面,今天先简单介绍strlen与strcpy两个函数的模拟实现。一、strlen函数的介绍与模拟实现strlen函数的介绍strlen是计算字符串长度的一个函数,函数形参和返回类型如下:size_t strlen ( const char原创 2021-06-05 00:32:31 · 308 阅读 · 6 评论 -
3分钟带你了解C语言中整形在内存中的存储
目录写在前面整形家族有哪些?整形数据的三种表示形式原码反码补码为什么整型数据在内存中以补码的形式存在?整形家族中char类型的范围整形数据存储中的大小端模式有关整形在内存中存储的几道题目————————————————————————————————————————————写在前面我们都知道,一个变量的创建是要开辟一块空间的,空间的大小由数据的类型来决定的。你是否好奇整形在内存中十如何存储的?今天我们就来聊一聊这个问题。整形家族有哪些?整形家族包括char(字符型),short(短整形),int(原创 2021-08-19 22:25:52 · 214 阅读 · 0 评论 -
杨氏矩阵的简单介绍与查找算法
目录一、什么是杨氏矩阵1.杨氏矩阵的文字描述2.杨氏的图像描述二、杨氏矩阵的查找算法1.什么是杨氏矩阵查找算法2.如何实现杨氏矩阵查找算法3.用代码实现杨氏矩阵查找算法三、总结一、什么是杨氏矩阵1.杨氏矩阵的文字描述杨氏矩阵,是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述对称和一般线性群的群表示,并研究它们的性质。有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);杨氏矩阵。是对组合表示理论和舒伯原创 2021-06-02 13:35:32 · 942 阅读 · 2 评论 -
浮点型数据在内存中的存储
浮点数家族包括: float、double、long double 类型。根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:A:(-1)^S * M * 2^EB:(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。C:M表示有效数字,大于等于1,小于2。D:2^E表示指数位举例说,十进制的10.5,写成二进制是1010.1,S就是0,M就是1.0101,E就是3,写成上面的形式就是(-1)^ 0 * 1.0101 * 2 ^.原创 2021-05-26 00:22:38 · 113 阅读 · 0 评论 -
整形数据在内存中的大小端存储模式
对于整形来说:数据存放内存中其实存放的是补码。这是为什么呢?原因就是计算机系统中,CPU只有加法计算器此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。原创 2021-05-28 23:19:07 · 300 阅读 · 0 评论 -
递归中两个经典的汉诺塔和青蛙跳台阶问题
目录汉诺塔什么是汉诺塔?递归实现汉诺塔问题青蛙跳台阶青蛙跳台阶问题简述递归实现青蛙跳台阶问题总结汉诺塔什么是汉诺塔?相信大家对汉诺塔这个游戏不陌生吧,或多或少都玩过一些。这是一种益智游戏,游戏规定要把一个柱子上的所有盘子移动到另一个柱子上,每次只能移动一块,且要保证每次移动过程中小盘子在大盘子上面。递归实现汉诺塔问题递归的思想就是大事化小。所以问题我们可以这样考虑有三个柱子 分别是A B C 将A柱子上n个盘子借助B柱子移动到C柱子上我们可以将这个问题转化为将A柱子上n-1个盘.原创 2021-08-25 13:34:35 · 181 阅读 · 1 评论 -
一个超好玩的三子棋小游戏
目录写在前面三子棋游戏的布局游戏的内容实现总结写在前面今天我要给大家介绍一下三子棋小游戏的简易制作。今天我们将主要用到C语言的数组知识来实现这个小游戏,相信这个游戏大家平时也都有玩过,现在我就来给大家介绍一下。三子棋游戏的布局这个游戏我们将把代码放在三个文件中:game.c,game.h,test.c。game.h这个头文件将用了存放一些函数申明的内容及一些将会用到的头文件,还有一些宏定义。#define ROW 3#define COL 3#include <stdio.h&g原创 2021-07-29 22:39:46 · 154 阅读 · 0 评论 -
教你如何用C语言设计一个有趣的猜数字小游戏
目录前言猜数字游戏打印菜单处理玩家选择的操作编写猜数字游戏函数游戏中要猜数字从哪来?(配置随机数生成器)时间戳开始生成随机数game函数内部编写完整代码总结前言好久不见,今天我要跟大家分享一个C语言猜数字小游戏,无聊的时候玩一玩这种小游戏,怡怡情,给自己的生活整天一点乐趣,哈哈~话不多说,开干猜数字游戏打印菜单一个游戏嘛,首先我们得打印一个菜单让玩家看到菜单栏,可以提供选择,代码如下:void menu(){ printf("*******************************原创 2021-06-23 23:55:04 · 2576 阅读 · 5 评论 -
手把手带你学会C语言的分支语句和循环语句(一)
目录写在前面分支语句(选择结构)什么是选择结构分支语句中的if语句if语句的几种语法结构悬空elseif语句规范书写的那些事儿分支语句中的switch语句switch语句的语法结构switch中的breakswitch中的default子句循环语句什么是循环结构循环语句中的for循环for循环的语法结构for循环中的break和continue循环语句中的while循环while循环的语法结构while语句中的break和continue循环语句中的do-while循环do-while循环的语法结构do-w原创 2021-06-21 00:18:03 · 614 阅读 · 7 评论 -
一名freshman的自述与未来几年编程目标
在原创 2021-06-03 00:07:43 · 1612 阅读 · 12 评论