c
文章平均质量分 61
小凡喜编程
爱上班的程序猿一枚,仓库地址:https://gitee.com/fan-shengyang/projects
展开
-
C进阶-编译环境与预处理
本章重点:程序的翻译环境程序的执行环境详解:C语言程序的编译+链接预定义符号介绍预处理指令#define宏和函数的对比预处理操作符#和##的介绍命令定义预处理指令#include预处理指令#undef条件编译。原创 2023-11-08 16:27:38 · 131 阅读 · 3 评论 -
C进阶-语言文件操作
磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件int main()//相对路径//绝对路径//打开文件return 1;//读文件//写文件int i = 0;for (i = 0;i < 26;i++)//关闭文件fclose(pf);pf = NULL;return 0;int main()//相对路径//绝对路径//打开文件return 1;//读文件//a//b//c//d//写文件。原创 2023-10-20 23:05:46 · 806 阅读 · 0 评论 -
C进阶-动态内存管理
动态内存管理函数: malloc、free、realloc、calloc 2.2 callo函数2.3 realloc 3 常见的动态内存操作3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部分3.5 对同一块动态内存多次释放3.6 动态开辟内存忘记释放(内存泄漏)4. 经典面试题4.1 正确原创 2023-10-15 16:33:52 · 205 阅读 · 6 评论 -
基于C语言实现通讯录
实现一个通讯录通讯录中保存人的信息:名字、年龄、电话、住址、性别1.通讯录中可以存放100个人的信息2.增加联系人3.删除指定联系人4.查找指定联系人5.修改指定联系人6.显示所有联系人的信息7.排序功能test.c - 测试通讯录contact.h 函数的类型的声明contact.c 函数的实现。原创 2023-10-15 13:59:28 · 138 阅读 · 0 评论 -
C进阶-自定义类型:结构体、枚举、联合
结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)原创 2023-10-11 22:33:41 · 198 阅读 · 0 评论 -
C进阶-字符串和内存函数
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符串数组中。字符串常量适用于那些对他不做修改的字符串函数。原创 2023-10-01 13:58:05 · 131 阅读 · 0 评论 -
C语言-指针的进阶
本文主要讲解了c语言中指针的进阶内容,在初阶的基础上进行延伸.内存会划分为一个个的内存单元每个内存单元都有一个独立的编号,-编号也称为地址地址在C语言中也被称为指针指针(地址)需要存储起来-存储到变量中,这个变量也就被称为指针变量指针(地址)的大小固定说4/8个字节(32位平台/64位平台)地址是物理的电线上产生32为机器-32根地址线 -1/032个0/1组成的二进制序列,把这个二进制序列作为地址,32bit位才能存储这个地址也就是需要4个字节才能存储,所以指针变量的大小是4个字节。原创 2023-09-26 09:01:02 · 286 阅读 · 0 评论 -
函数栈帧的创建和销毁
局部变量怎么样创建的?为什么局部变量的值死随机值?函数是怎么传参的?传参的顺序是怎么样的?形参和实参是什么关系?函数调用时怎么做的?函数调用结束后是怎么返回的?原创 2023-09-08 20:08:26 · 38 阅读 · 0 评论 -
C中的基本函数
维基百科中对函数的定义:子程序 在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成,他负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏,这些代码通常被集成为软件库。原创 2023-09-05 20:21:55 · 251 阅读 · 0 评论 -
C基础-数组
C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,我们自己要做好越界的检查。所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。数组的下规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1。我们会将数组作为参数传个函数,比如我们实现一个冒泡排序。数组的下标是有范围限制的。原创 2023-09-09 20:46:01 · 194 阅读 · 0 评论 -
C语言实现三字棋
以下都是具体函数的实现,都在game.c文件中完成,test.c调用,game.h定义。(2)游戏再走的过程中要进行数据的存储,可以使用3*3的二维数组。1游戏不退出,继续玩下一把(循环)game.c -游戏函数的实现。game.h -游戏函数的声明。(2)没下棋之前数组中存放空格。test.c. --测试游戏。2应用多文件的形式完成。原创 2023-09-10 19:45:25 · 1177 阅读 · 0 评论 -
C语言实现扫雷小游戏
不是雷放* 雷:# 不是雷:0 雷:1。2. 给2个二维数组 9*9 一个存放雷的信息,一个存放布置好雷的信息。3.为了防止在统计坐标周围的雷点个数的时候越界,我们让数组设计为11*11。1.首先扫雷游戏要存储布置好的雷信息,需要一个二维数组。test.c. - 测试游戏的代码。game.h. -游戏函数的声明。game.c -游戏的实现。排查雷和计算周围有几个雷。原创 2023-09-11 22:59:56 · 1194 阅读 · 0 评论 -
C基础-操作符详解
下标引用,函数调用和结构成员: []. (). . ->编写代码实现:求一个整数存储在内存中的二进制中1的个数。赋值操作符: = += -= *= /= ....sizeof + - ~ & *关系操作符: > < >= 位操作符:& | ^原创 2023-09-12 23:28:06 · 375 阅读 · 0 评论 -
C语言基础-指针
int* 4个字节 char* 1个字节 short* 2个字节 float* 4个字节 double* 8个字节。结论:指针类型可以决定指针解引用的时候访问多少个字节(指针的权限)平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。总结:指针就是地址,口语中说的指针通常指的是指针变量。指针是内存中一个最小单元的编号,也就是地址。char* 的指针解引用访问1个字节。3指针指向的空间释放,及时置NULL。int* 的指针解引用访问4个字节。5指针使用之前检查有效性。原创 2023-09-18 19:32:55 · 720 阅读 · 0 评论 -
C语言基础-结构体
结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。结构体:其实是一组不一定相同类型元素的集合。数组:一组相同类型元素的集合。原创 2023-09-21 00:08:43 · 172 阅读 · 0 评论 -
c语言-实用调试技巧
程序中出现的问题debug通常称为调试版本,他包含调试信息,并且不做任何优化,便于程序员调试程序release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好的使用。原创 2023-09-22 22:25:28 · 253 阅读 · 0 评论 -
C进阶-数据的存储
num和*pFloat 在内存中明明是同一个数,为什么浮点数和整数的解读结果会差别这么大?举例来说:十进制的5.0,写成二进制是 101.0,相当于 1.01x2入2。那么,按照上面V的格式,可以得出s=0M=1.01 ,E=2。IEEE 754规定:对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。十进制的-5.0,写成二进制是-101.0,相当于-1.01x2^2。那么,s=1,M=1.01,E=2。(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。原创 2023-09-24 23:08:10 · 299 阅读 · 0 评论 -
网络基础知识学习
物理层:负责光/电信号的传递方式,比如现在以太网通用的网线(双绞线),早期以太网采用的同轴电缆、光纤、现在的wifi无线网使用电磁波等都属于物理层的概念。:负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划处两台主机之间的数据传输的线路(路由),路由器(router)工作在网络层。它最大的优点就是将服务、接口和协议这三个概念明确的地区分开来,概念清楚,理论也比较完整,通过七个层次的结构模型使不同的系统不同的网络之间实现可靠的通讯。局域网中的两台主机能直接通信吗?原创 2022-10-24 13:26:54 · 618 阅读 · 0 评论 -
网络编程套接字
内存中的多字节数据相对于内存地址有大小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大小端之分,网络数据同样有。计算机本身不产生数据,产生数据的是人,人通过特定的客户端产生数据。整个网络看作是一个大的OS,所有的网络上网行为,基本上都是在这一个大的OS中,进行进程间通信。网络通信的标准方式有很多种,基于ip的网络通信,AF_INET,原始套接字,域间套接字。本质上,所有的网络通信,站在普通人的角度,就是人和人之间通信。网络数据流的地址应这样规定,先发出的数据是低地址,后发出的数据是高地址。原创 2022-10-25 19:26:42 · 881 阅读 · 0 评论 -
C语言入门(一)
C语言是一门通用的计算机编程语言,C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。ANSI C -CC语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang,GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。原创 2022-10-31 16:32:48 · 127 阅读 · 0 评论 -
C语言入门(二)
作用域:作用域,程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,二限定这个名字的可用性的代码范围就是这个名字的作用域、局部变量的作用域是变量所在的局部范围全局变量的作用域是整个工程生命周期:变量的生命周期指的是变量的创建到变量的销毁字节的一个时间段局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束全局变量的生命周期是:整个程序的生命周期全局变量在整个工程都可以使用。原创 2022-11-02 17:31:33 · 90 阅读 · 0 评论 -
C语言入门(三)“操作符详解基础版”
算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员。原创 2022-11-04 17:23:59 · 187 阅读 · 0 评论 -
C语言入门(四)
//define定义标识符常量//define定义宏x:y)int main(){return 0;}原创 2022-11-05 22:14:17 · 141 阅读 · 0 评论 -
C语言实现TCP文件传输(源码讲解)
【代码】C语言实现TCP文件传输(源码讲解)原创 2022-11-22 19:59:44 · 2557 阅读 · 0 评论