C语言
文章平均质量分 90
C语言基础及相关项目
七月不远.
这个作者很懒,什么都没留下…
展开
-
自测-4 Have Fun with Numbers (20分)
题目描述Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in原创 2022-04-26 20:04:27 · 471 阅读 · 0 评论 -
程序的编译过程(简述)
目录前言1. 编译的流程2. 预编译3. 编译4. 汇编5. 链接前言对于一个C程序,通常的开发环境都是流行的集成开发环境(IDE) ,例如Visual Studio、devc++等。通常在IDE内部集成了编译器和链接器,以至于我们不需要关注编译和链接的细节,只需要注意编程语言的语法正确性就可以写成能成功运行的代码,这种依赖于IDE自行完成的构建过程往往让我们忽略了程序运行的机制与机理,有时甚至产生一些我们无法理解的错误,因此了解程序的编译过程,能够帮助我们分析程序运行的本原创 2022-04-22 20:06:33 · 4411 阅读 · 0 评论 -
#define的使用
目录前言1.#define定义标识符2. #define定义宏3.#define 替换规则4.宏和函数对比前言在很多C程序中,我们会在一个源文件的开头看到#define的字眼,和define的英文解释相同——可以理解为给xxx下定义,这里可以是标识符甚至是一个函数,接下来的内容将会对#define进行详解1.#define定义标识符使用#define可以用来定义标识符,所谓标识符可以简单理解为一个能够表示一定内容的符号,其格式为#定义 标识符...原创 2022-04-13 20:44:32 · 47842 阅读 · 5 评论 -
C语言-动态内存管理+通讯录
1. 程序内存1.1 程序运行时的内存在学习C语言时,我们经常需要为一个变量来分配一块内存空间,不同类型的变量所占用的内存空间也是不一样的,而每一个程序内部都有各种代码和数据需要存储在内存上。因此,了解内存空间的分配对我们理解程序的运行是极为有利的,下图介绍了Linux x86-64运行时的内存映像对于一个C程序,操作系统将会针对不同的数据类型在不同的内存局域上开辟空间对于静态变量及全局变量静态变量和全局变量被存储在数据段 ,在程序的整个运行周期都不销毁。其中,如果变量未初始化,则原创 2022-03-29 22:32:14 · 4763 阅读 · 0 评论 -
数组、结构体、联合、位断、枚举
目录前言1. 数组的分配与访问1.1 基本原则1.2 指针运算1.3 嵌套的数组1.4 定长数组1.5 变长数组2. 结构体2.1 结构体声明2.2 结构体的自引用2.3 结构体访存2.4 结构体变量的初始化2.5结构体内存对齐2.6修改默认对齐数3. 联合3.1 联合的定义3.2 联合的大小4. 位断4.1 位断的声明4.2 位断的内存分配4.3 位段的跨平台问题5. 枚举5.1 枚举定义...原创 2022-03-26 19:19:59 · 1049 阅读 · 0 评论 -
C语言-浮点数的表示与储存
浮点数的表示与存储规则详解原创 2022-03-02 23:15:32 · 8196 阅读 · 1 评论 -
C语言-整数存储与位操作符详解及应用
目录1. 整数在计算机中的存储1.1 整形类型1.2 整数在内存中的储存形式1.2.1 原码、反码、补码1.2.2 大小端介绍2. 三种位操作符3. 位操作符应用实例3.1 例题13.2 例题23.3 例题31. 整数在计算机中的存储1.1 整形类型当我们敲下这样一段代码:int a = 10;int b = -10;我们便在内存中分配了一块空间,并将10这个数字存了进去。而这块空间的大小与整形的类型有关,C语言中,整形的类型有:c原创 2022-02-05 21:30:24 · 880 阅读 · 0 评论 -
C语言实现扫雷(基础版)
目录1. 扫雷的背景和起源1.1 背景1.2 起源2. 扫雷的规则3. 扫雷的C语言实现3.1 扫雷的基本逻辑3.2 打印开始菜单提供给用户3.3 使用二维数组初始化棋盘3.4 在棋盘上布置“雷”3.5 打印棋盘3.6 实现排雷逻辑和胜负关系判断4. 总结1. 扫雷的背景和起源1.1 背景扫雷在科技历史上也扮演了相似的角色。这个基于数字的逻辑谜题最早来自20世纪六七十年代,当时Jerimac Ratliff推出的名为“Cube”的游戏已经非常受.原创 2022-01-24 14:24:31 · 2872 阅读 · 1 评论 -
C语言小项目——三子棋的实现
1.预备知识——数组1.1数组的定义数组是一组相同类型元素的集合所谓的相同元素,是指在同一个数组中,所有的元素类型必须一致。如整形数组只能存放int整形变量,字符数组只能存放char类型字符变量,不能混合存放。1.2数组的创建和初始化对于数组,需要先创建和初始化才能使用,常见的数组有一维数组和二维数组,这两种数组的创建和初始化分别为:一维数组的创建int arr[10]; //int是数组元素类型的定义,arr是数组名,[10]表明数组内元素个数是 10一维..原创 2022-01-23 13:56:36 · 337 阅读 · 1 评论 -
C语言递归思想实现汉诺塔
目录1.递归思想简介2.汉诺塔问题3.汉诺塔递归的c语言实现1.递归思想简介在c语言中,程序调用自身的编程技巧称为递归( recursion)。递归的定义看上去似乎很抽象,使用代码描述能够让人容易理解,下面是一个函数递归的例子。/* 递归求n的阶乘 */int factorial(int n) //定义一个求阶乘的函数叫做factorial(),需要一个整形参原创 2022-01-20 21:37:21 · 702 阅读 · 1 评论 -
利用rand()和srand()产生随机数编写猜数字游戏
目录1.rand和srand介绍2.如何使用rand和srand3.常见到的问题4.用C语言实现猜数字游戏1.rand和srand介绍在C语言中,当我们需要产生伪随机数的时候,我们往往会使用rand()和srand()两个函数,他们是一对相辅相成的函数。在MSDN中搜索rand函数,你会看到如下图所示的内容:使用rand函数能够生成随机数,但这个数并非完全随机,而是伪随机数。在使用之前我们需要引一个名为stdlib的库函数。 在调用之后,rand函数将会返回一个范围为0原创 2022-01-17 21:02:32 · 3583 阅读 · 2 评论