
C语言
文章平均质量分 90
讲解C语言的相关知识,从基础到进阶,从一知半解到了然于心。
beyond->myself
菜鸡一枚,记录学习!
展开
-
【C】程序环境和预处理
_FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。return 1;//失败返回 //EXIT_SUCCESS//成功返回 } for(i = 0;i < 10;i ++) {} //关闭文件 fclose(pf);return 0;}............原创 2022-08-15 22:52:48 · 325 阅读 · 20 评论 -
【C】柔性数组
也许你从来没有听说过**柔性数组(flexible array)**这个概念,但是它确实是存在的。C99 中,结构体中的最后一个元素允许是未知大小的数组,就是[]里不放数字或者[]放数字0,这就叫做『柔性数组』成员。......原创 2022-08-11 22:59:22 · 160 阅读 · 23 评论 -
C语言文件操作
磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。原创 2022-08-08 22:25:50 · 265 阅读 · 32 评论 -
结构体初阶
有了结构体类型,我们可以直接创建结构体变量,并且对结构体变量进行初始化。int num;float f;};int data;} n1 = {10 , {//结构体嵌套初始化 int main() {//初始化的顺序要于结构体类型的成员变量一一对应 struct Peo p1 = {"zhangsan" , "13503532463" , "男" , 190 };{......原创 2022-08-08 22:09:22 · 340 阅读 · 1 评论 -
深入理解数组
1. 数组是使用下标来访问的,下标是从0开始。2. 数组的大小可以通过计算得到。原创 2022-08-07 21:27:49 · 290 阅读 · 23 评论 -
动态内存管理
功能:分配内存块,新分配的内存块的内容未初始化,仍保留不确定的值。参数:size——内存块的大小,以字节为单位,是无符号整数类型。返回值:开辟好空间的指针或NULL指针。malloc函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。...原创 2022-08-06 13:35:16 · 728 阅读 · 25 评论 -
自定义类型:结构体,枚举,联合
有了结构体类型,那如何定义变量,其实很简单。int x;int y;} p1;//声明类型的同时定义变量p1 struct Point p2;//定义结构体变量p2 //初始化:定义变量的同时赋初值。1 , 2 };int n;char ch;};struct Stu //类型声明 {//名字 int age;//年龄 struct score s;//分数 };//初始化 struct Node {int data;......原创 2022-08-04 15:37:33 · 380 阅读 · 34 评论 -
指针进阶(一)
本章重点这个章节,我们继续探讨指针的高级主题。主要是4块内容1. 字符指针 2.数组指针 3.指针数组 4. 数组传参和指针传参原创 2022-06-19 23:00:41 · 1387 阅读 · 21 评论 -
c语言入门高级教学(下)
文章目录前言1.数组1.1数组的定义1.2数组的下标小插曲之for循环语句讲解1.for循环的语法2.for循环的执行流程1.3数组的使用1.3变长数组2.操作符2.1算术操作符小插曲之二进制2.2移位操作符2.3位操作符2.4赋值操作符2.5单目操作符2.6关系操作符2.7逻辑操作符2.8条件操作符2.9逗号表达式2.10下标引用、函数调用和结构成员3.常见关键字3.1关键字 typedef3.2关键字register3.3关键字static3.3.1修饰局部变量3.3.2修饰全局变量3.3.3修饰函数4原创 2022-04-19 00:12:58 · 816 阅读 · 15 评论 -
解决vs中scanf()报错问题的两种方法
我们在初学c语言的时候,往往会下载一个编译器,大家一般都会使用Microsoft公司开发的Visual Studio(下面都简称VS)系列编译器,但是VS中的scanf()语句总是报错,显示不安全。如下:scanf()是标准c语言中提供的标准输入函数,用来接收输入数据。解决报错问题的两种方法1.简单粗暴在使用scanf()函数是全部写成scanf_s()scanf_s函数是Microsoft公司VS开发团队提供的安全标准输入函数。**缺点:**移植性不好,如果代码转移到其他编译器时,会出现多原创 2022-04-10 22:41:32 · 5811 阅读 · 2 评论 -
三子棋之VS人工智能/人工智障,你能赢吗?
文章目录一.前言🚀二.游戏逻辑✈🚀三.代码实现🚀1.test.c🚗2.game.h🚓3.game.c🚕四.游戏功能具体分析🚀1.棋盘的初始化🚙2.棋盘的打印🚑3.玩家下棋🚒4.电脑下棋🚍4.1简单模式🚘4.2困难模式🚖5.判断棋盘满没满🚅6.判断游戏输赢🚃五.总结🚀一.前言🚀大家好,首先祝大家五一快乐🎈🎈🎈🎈🎈🎈,当然有很多大学生像作者一样五一并没有放假,说多了都是泪啊😭,不过没事,我们还有周末!废话不多说了,今天我们一起来研究一下三子棋,虽然在c站三子棋已经烂大街了,但是每个人都有自己与众不同的地方,原创 2022-05-01 21:28:25 · 2993 阅读 · 22 评论 -
指针进阶(二)
我们初步认识一下qsort库函数(打开MSDN)通过MSDN的介绍,我们知道qsort的作用是一次快速排序,返回类型为void,参数4个,分别为void*base返回类型为无类型指针,参数base中存放的是待排序数据的起始位置size_tnum返回类型为无符号整形,参数num中存放的是待排序数据元素的个数返回类型为无符号整形,参数width中存放的是待排序数据元素的大小(单位是字节)参数compare一个是返回类型为函数指针类型,指向函数的参数为两个无类型指针,返回类型为int的比较函数。...原创 2022-07-31 23:55:09 · 546 阅读 · 7 评论 -
深度剖析数据在内存中的存储
深度剖析数据在内存中的存储文章目录1.数据类型介绍1.1 类型的基本归类:2. 整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3 练习练习1练习2练习3练习4练习5练习6练习7练习83. 浮点型在内存中的存储3.1 一个例子3.2 浮点数存储规则E不全为0或不全为1E全为0E全为1解释前面的题目:本章重点1. 数据类型详细介绍2. 整形在内存中的存储:原码、反码、补码3. 大小端字节序介绍及判断4. 浮点型在内存中的存储解析1.数据类型介绍前面我们已经学习了基本的内置类原创 2022-05-29 17:00:23 · 306 阅读 · 38 评论 -
C语言入门高级教学(上)
导语目标一,c语言简介##1,什么是c语言##2,c语言的特点二,第一个c语言程序三,数据类型四,变量和常量五,字符串,转义字符,注释六,选择语句+循环语句七,函数导语本篇博客主要是向大家初步介绍一下C语言...原创 2022-04-10 23:36:59 · 2032 阅读 · 8 评论 -
分支语句和循环语句
前言c语言是结构化的程序设计语言!!!什么叫结构化呢,我们生活中有三种结构,顺序结构,选择结构,循环结构。顺序结构就是从头到尾执行,没什么好讲的,我们重点讲一下选择结构和循环结构。(选择)分支语句和循环语句分支语句 :if switch循环语句 : while for do whilegoto语句1. 什么是语句?C语句可分为以下五类:1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句控制语句用于控制程序的执行原创 2022-04-21 22:19:45 · 327 阅读 · 11 评论 -
字符(串)及内存操作库函数
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。码字不易,跪求三连!!!httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。......原创 2022-08-02 14:36:47 · 554 阅读 · 24 评论 -
带你深入理解函数
文章目录1.函数是什么?2.C语言中函数的分类:2.1 库函数:2.1.1 如何学会使用库函数?2.2 自定义函数3.函数的参数3.1 实际参数(实参):3.2 形式参数(形参):4.函数的调用4.1 传值调用4.2 传址调用4.3 练习5.函数的嵌套调用和链式访问5.1.1 嵌套调用5.1.2 嵌套定义5.2 链式访问6.函数的声明和定义6.1 函数声明:6.2 函数定义:7.函数递归7.1 什么是递归?7.2 递归的两个必要条件7.2.1 练习1:7.2.2 练习2:7.3 递归与迭代7.3.1 练习原创 2022-04-23 17:10:10 · 629 阅读 · 37 评论 -
指针初阶(基础)
今天我们来了解一下初阶指针 ,后面还会有进阶指针,这只是初步了解,毕竟指针这么重要。原创 2022-06-19 22:53:16 · 199 阅读 · 8 评论 -
工兵模拟器之扫雷
文章目录🍔 一,前言🍔二,游戏介绍🍔三,游戏功能逻辑1.test.c2.game.h3.game.c🍔四,游戏代码实现🍕1.定义雷盘🍕2.初始化雷盘🍕3.打印雷盘🍞4.埋雷🍞5.获取坐标周围雷的个数🍞6.递归式展开一片🧀7.标记或取消标记雷🧀8.判断胜利🧀9.排雷🍔五,游戏效果展示🍔六,结语🍔 一,前言大家好,好久没见了呢!确实,最近太懒了,将近两个星期没更文了。主要是想集中精力去学习一些学校的课程,主要是我之前没有好好学习,发现学校这学期的课程很蓝的啦,不过更文是不能停的,毕竟有那么多小伙伴和我一起原创 2022-05-13 21:49:11 · 1165 阅读 · 29 评论 -
随机数和随机数种子——学不会找我
文章目录1.rand()函数的功能是用来产生一个数🥇2.srand()函数的功能是用来播种随机数种子,能够产生一个随机数🥈3.时间戳🥉4.随机数的范围🏅5.随机数的应用🎖在实际开发中,我们有时会用到随机数,今天我们来研究一下随机数是如何产生的。1.rand()函数的功能是用来产生一个数🥇rand()的内部实现使用线性同余法(一种非常复杂的算法做的,他不是真的随机数,因为其周期特别长,在一定范围内可看成随机数。rand()返回的随机数值的范围在0~RAND-MAX之间。RAND-MAX的范围最少是在3原创 2022-05-03 16:48:58 · 8180 阅读 · 13 评论 -
指针进阶(三)之指针与数组笔试题
数组名的意义sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。除此之外所有的数组名都表示首元素的地址。......原创 2022-07-31 23:57:38 · 470 阅读 · 40 评论