C语言系列
文章平均质量分 90
C语言学习
风继续吹TT
这个作者很懒,什么都没留下…
展开
-
C语言必做项目(1)---三子棋
目录文件创建菜单棋盘创建初始化数组打印棋盘玩家下棋电脑下棋判断胜负测试上一章我们学习了C语言中很重要的一个内容数组,那么今天我们就来亲身体会一下在项目中数组的实际运用吧。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了;如果棋盘被占满了都没都有分出胜负,那么就是平局。现在我们来整理一下做这个游戏的一些基本步骤,这里我给大家整理了一份思维导图:...原创 2021-07-30 20:28:58 · 563 阅读 · 6 评论 -
C语言必做项目(2)---扫雷(简易版)
目录项目介绍文件创建菜单创建棋盘初始化棋盘打印棋盘布置地雷排雷完整代码项目介绍和三子棋一样,本项目在学习了函数和数组之后即可轻松应对。扫雷的规则:随便输入一个格子的坐标,格子上就会出现一个数字,上面的数字就代表数字周围八个格子会有几个雷,是1他周围就只有1个雷,2就有两个雷······本次项目我们以9*9的格子为例,其中有10颗雷(当然大家可根据需要适当调整)。文件创建首先创建三个源文件test.c,game.c,game.h菜..原创 2021-07-31 18:58:22 · 1215 阅读 · 6 评论 -
手撕C语言进阶---程序编译
程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。详解编译+链接翻译环境组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。 每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。 链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接原创 2021-10-14 12:51:01 · 1071 阅读 · 3 评论 -
手撕C语言进阶---文件操作
什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。本章讨论的是数据文件。在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。其实有时候我们会把信原创 2021-10-05 17:50:37 · 759 阅读 · 13 评论 -
手撕C语言进阶---动态内存管理
为什么存在动态内存分配我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。 但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。 这时候就只能试试动态存开辟了。...原创 2021-09-29 11:29:22 · 723 阅读 · 10 评论 -
手撕C语言进阶---自定义类型:结构体,枚举,联合
结构体结构体的声明结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。前面初阶阶段我们介绍过结构体。如果我们要描述一个人的信息,一本书的信息等等...C语言中没有对应的类型可以描述。所以对于这些复杂的对象C语言中给了我们结构体用来描述这些对象。结构的声明struct tag{ member-list;}variable-list;例如描述一个学生:struct Stu{ char name[20];/..原创 2021-09-24 15:31:45 · 815 阅读 · 6 评论 -
初识C语言(2)
字符串+转义字符+注释字符串由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字 符串。原创 2021-06-05 19:03:25 · 319 阅读 · 5 评论 -
手撕C语言初阶--函数
函数函数是什么数学中我们常见到函数的概念。但是你了解C语言中的函数吗?维基百科中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method,subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。其实函数就原创 2021-07-24 21:30:44 · 580 阅读 · 2 评论 -
手撕C语言初阶---操作符(超详解!值得收藏~)
操作符和表达式本章重点1. 各种操作符的介绍。2. 表达式求值操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员算数操作符+ - * / %1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3. % 操作符的两个操作数必须为整数。返...原创 2021-08-02 11:16:51 · 916 阅读 · 10 评论 -
(!!新手必看!!)手撕C语言初阶---数组
一维数组的创建和初始化数组的创建数组是一组相同类型元素的集合。数组的创建方式:type_t arr_name [const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式,用来指定数组的大小数组创建的实例://代码1int arr1[10];//代码2int count = 10;int arr2[count];//代码3char arr3[10];float arr4[1];double arr5[20];注:数组创建,原创 2021-07-28 19:29:13 · 663 阅读 · 2 评论 -
手撕C语言进阶---字符串和内存函数(详解+实现+原码)
字符函数和字符串函数本章重点 重点介绍处理字符和字符串的库函数的使用和注意事项 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 字符串查找 strstr strtok 错误信息报告 strerror 字符操作 内存操作函数 memcpy memmove memset memcmp前言C语言中.原创 2021-09-22 21:56:43 · 640 阅读 · 22 评论 -
手撕C语言进阶---数据的储存
目录前言数据类型介绍类型的基本归类整形在内存中的存储原码、反码、补码大小端介绍浮点型在内存中的存储前言前面我们学习了C语言的一些基本知识和基础的语法,想必大家对C语言都有了自己的认识。当然只是学习这些知识还是不够的,我们需要进行更加深入的学习。从本章开始,我们将进行C语言进阶阶段的学习,所以难度会有所增加。数据类型介绍前面我们已经学习了基本的内置类型:char //字符数据类型 short //短整型 int //整.原创 2021-08-12 19:39:19 · 671 阅读 · 2 评论 -
leetcode--只出现一次的数(C语言)
题目:260. 只出现一次的数字 III给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?题目链接:https://leetcode-cn.com/problems/single-number-iii...原创 2021-06-24 10:11:54 · 446 阅读 · 1 评论 -
手撕C语言初阶----分支和循环
前面我们初步了解了C语言,相信大家对C语言都有了一些自己的了解。从本章开始,我们就正式进入C语言初级阶段的学习。本章重点学习分支语句和循环语句的使用。原创 2021-06-20 14:57:20 · 791 阅读 · 1 评论 -
手撕C语言进阶---指针(干货满满!值得收藏!!)
指针的主题,我们在初级阶段的《指针》章节已经接触过了,我们知道了指针的概念:指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节(32位平台/64位平台)。 指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。 指针的运算。这个章节,我们继续探讨指针的高级主题字符指针在指针的类型中我们知道有一种指针类型为字符指针 char* ;一般使用:int main(){ char ch = 'w'; c.原创 2021-09-04 12:56:41 · 955 阅读 · 13 评论 -
初识C语言(3)
1.#define定义常量和宏前面在介绍关键字的时候里面有 define ,那他有怎么1.1#define定义常量原创 2021-06-10 20:11:32 · 559 阅读 · 1 评论 -
函数栈帧(值得收藏)
函数栈帧的创建和销毁前期学习的时候,我们可能有很多困惑?比如:局部变量是怎么创建的? 为什么局部变量的值是随机的? 函数是怎么传参的?传参的顺序是怎么样的? 形参和实参是什么关系? 函数调用是怎么做的? 函数调用结束后是怎么返回的?今天知道函数栈帧的创建和销毁就都会了,其实就是修炼了自己的内功,也能搞懂后期更多的知识。今天我们使用的环境是VS2013,不要使用太高级的编译器,越高级的编译器,越不容易学习和观察。同时在不同的编译器下,函数调用的过程中栈帧的创建时略有差异的,具体原创 2021-08-08 18:40:52 · 625 阅读 · 2 评论 -
初识C语言(1)
什么是C语言C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程 语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及 超级电脑等作业平台。 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语原创 2021-06-04 12:54:49 · 387 阅读 · 1 评论 -
手撕C语言初阶---结构体
结构体的声明结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的声明struct tag{ member-list;}variable-list;例如描述一个学生:typedef struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号}Stu;//分号不能丢结构成员的类型...原创 2021-08-09 21:35:55 · 347 阅读 · 1 评论 -
手撕C语言初阶---指针
指针是什么?在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。那我们就可以这样理解:地址指向了一块确定的内存空间,所以地址被形象的称为指针。指针指针是个变量,存放内存单元的地址(编号)。那对应到代码:#include <stdio.h&..原创 2021-08-04 19:39:41 · 610 阅读 · 1 评论