![](https://img-blog.csdnimg.cn/8cde6c4748624877ab3e1d8db0a095a3.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C基础和进阶
文章平均质量分 87
细致的讲解C语言基础和进阶的内容。
随风飘扬@
这个作者很懒,什么都没留下…
展开
-
初识C语言——2
人的一生会面临许许多多选择,不同的选择会有不同的一个结果。比如说你好好学习编程,大学毕业之后可以找到一个好的工作,你不好好学习,就只能回家卖红薯! 在C语言中这样的一个选择是通过,if还有switch语句来实现的。 有些事必须一直做,比如我日复一日的讲课,比如大家,日复一日的学习。 函数的这一个部分,相当于一个模块的代码!它可以减少代码重复多次的书写,去实现代码的复用! 在没有了解函数之前 这样去写一个代码去实现多个加法是比较烦的那么我们可以通过一个函数去实现我们的这个加法! 关于num1 n原创 2023-04-14 21:23:02 · 98 阅读 · 2 评论 -
初始C语言———————3
要想要理解指针就要考虑到内存。原创 2023-05-02 16:24:18 · 41 阅读 · 0 评论 -
数据在内存中的存储———————1
整形家族 浮点型家族char 1字节 float 4字节。原创 2023-05-29 22:55:12 · 92 阅读 · 4 评论 -
分支和循环语句
C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句后面介绍的是控制语句。控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1.条件判断语句也叫分支语句:if语句、switch语句;2.循环执行语句:do while语句、while语句、for语句;3.转向语句:break语句、原创 2023-05-03 10:18:17 · 46 阅读 · 0 评论 -
数据在内存中的存储————————2(关于浮点型)
这里我们看到*PFloat以%f类型打印出来结果是0.000000 之后我们把*PFloat 给重新赋值为9.0接下来就让我们来看一看这些问题?原创 2023-06-01 22:09:04 · 141 阅读 · 8 评论 -
三字棋的实现
首先定义一个字符型的二维数组.不初始化.二维数组的行和列通过实现一个game.h去定义并实现相关的游戏函数.1.游戏一定要进入一次,使用do while 循环 ,并且通过输入数字去选择是否玩游戏,通过switch开关语句去实现.原创 2023-05-08 11:56:20 · 151 阅读 · 0 评论 -
扫雷 实现
我们看见的是不是一个这样的区域如果我们点一个位置是不是有可能会有信息关于周围雷的一个数量,也有可能是被直接炸死,也有可能是直接展开了一片区域!这个时候想要统一去管理我们的两个二维数组的长宽,我们为了统一的去管理,这个时候我们就想要使用分文件的形式去管理我们的相关信息。人为应该可以多次的输入一个坐标去获得我们排查雷的信息,或者直接被炸死,或者排查排查把不是雷的地方排查完了就获得游戏的胜利!我们这是一个字符的一个数组,我们可以字符'0' 为不是雷 字符'1'是雷去放置,开始因为是初始化我们先不放置雷。原创 2023-05-09 21:48:52 · 116 阅读 · 1 评论 -
指针-初阶
指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。比如:char*的指针解引用就只能访问一个字节,而int*的指针的解引用就能访问四个字节。原创 2023-05-18 18:19:44 · 57 阅读 · 0 评论 -
初识C语言-1
这是我个人的一个学习的笔记和总结,分享出来督促自己学习。原创 2023-04-07 00:30:48 · 97 阅读 · 0 评论 -
BUG 与程序员的爱恨情仇————————实用调试技巧
模拟实现一个strcpy函数关于strcpy优化1优化2(考虑如果说进入函数的这个指针是一个空指针是不是会出现问题)使用assert断言去排出有可能产生的问题优化3 (我们这个要拷贝过去的arr2的指针的地址内容是一个不会被容易就改变了的一个字符串)我们可以去使用const去防止内容被轻而易举的改变一些其他的优化(最终版)原创 2023-05-27 23:34:19 · 87 阅读 · 3 评论 -
静态通讯录实现
在我们的这个address_book.h中去定义我们的结构体信息可以在所有文件包涵这个头文件这样所有的文件知道类型的定义。int age;} info;int sz;//当前已经有的人的信息 } list;你会发现我们这个结构体的这个一些大小的控制是写死的是我们想要后期去更改代码内容,比如说通讯录我们想要存放200人那么怎么办,有特别长的名字输入,或者有特别长的地址那么怎么办?int age;} info;int sz;//当前已经有的人的信息 } list;12。原创 2023-07-14 10:37:40 · 57 阅读 · 1 评论 -
动态内存管理
函数原型:void * malloc(size_t size)1.void* 返回类型上面返回类型需要我们自己去进行强制类型转换成我们需要的类型。函数参数是我们需要开辟空间的大小单位是字节;2.开辟成功的情况下返回的值是开辟空间的首地址。3.如果开辟失败返回NULL4.开辟空间有可能会产生开辟空间失败的情况,有一个好习惯就是开辟空间之后进行判断是否为空如果为空说明开辟空间失败了。5.特殊情况在c语言的标准中没有定义开辟0字节的情况,正常程序没有影响的,同时取决于编译器的。原创 2023-07-14 20:34:55 · 114 阅读 · 2 评论 -
指针进阶——笔试题详解
题目解释。原创 2023-07-09 19:53:37 · 67 阅读 · 1 评论 -
程序环境和预处理
C语言标准内置的内容__FILE__进行编译源文件的位置__LINE__文件当前的行号__DATE__文件被编译的日期__TIME__文件被编译的时间__STDC__判断编译器是否服从标准C(ANSI C)数值就是1,否则就是没有定义这个内置符号#define机制规定,允许把参数替换到文本中。这样的实现就称为宏或者说定义宏。基本格式:#define name(preame_list)stuff1.list是一个一个用逗号隔开的符号表,他们可能出现在stuff中2.宏的参数需要括号。原创 2023-07-20 12:38:00 · 140 阅读 · 4 评论 -
c语言文件操作
在C语言程序设计的过程中一般有两中文件参与,分别是程序文件和数据文件。程序文件:.c结尾的程序的原文件,这是纯C代码。还有编译产生的可执行程序exe。数据文件:在程序执行的过程中会需要数据和产生数据,那么这个数据就被存放在一个数据文件中。功能------------ 函数名------------ 适用于字符输入函数-- fgetc ---------------所有输入流字符输出函数 --fputc ---------------所有输出流。原创 2023-07-16 14:06:44 · 164 阅读 · 1 评论 -
自定义类型[结构体+枚举+联合]
1.定义好结构体直接在主函数中去初始化结构体变量2.声明好的结构体后面直接初始化结构体变量(全局变量)3.匿名结构体的声明也是可以在声明好的结构体后面直接初始化结构体变量(全局变量)4. 2 3两种方法一般不会去typedef重新命名结构体的名称的。5.采用{}的方法去初始化结构体变量。int age;char n;} s1;int age;char n;s1 a;} s2;//1.1.定义好结构体直接在主函数中去初始化结构体变量 s1 ab = {18 , 'c' };原创 2023-07-12 22:06:22 · 71 阅读 · 0 评论 -
指针的进阶
数组指针是一个指针,我们在前面了解过整形指针 int * pint 浮点型指针 float * pf。整形指针:int * pint;能够指向整形数据的指针。浮点型指针:float * pf;能够指向浮点型数据的指针。那么数组指针就是一个指向数组数据的一个指针!这里我们就需要知道一个结合性的概念!我们的[]的结合性比我们的*强!第一个就是一个存放int类型的指针数组,第二个我们使用了一个括号把变量名先跟*结合那么第二个就是一个数组指针了!qsort。原创 2023-07-07 22:55:59 · 111 阅读 · 4 评论 -
字符串和内存操作函数
总结:我们使用长度受控制的字符串函数去拷贝,追加,比较.我们可以通过手动输入操作原来字符串的操作长度,要比我们长度不受限制的好用并且安全,因为长度不受限制的字符串操作函数中,通过找的原函数的\0去停止字符串的拷贝,追加,比较.这样的方式有可能产生自己给自己操作的过程中由于\0位置内容改变而产生问题,也有可能有一些其他的情况导致\0原本的位置发生变化.6.在我们的函数中应该使用了应该静态的变量去存放我们第一次找的的分隔符的下一个位置的地址.(对我们的第二次使用函数提供了方便)就可以实现第一次寻找的功能,原创 2023-07-12 10:15:47 · 84 阅读 · 0 评论