![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 78
以初识C语言为基础不断扩展知识面,通过大量练习来提高代码能力
逸群不凡
这个作者很懒,什么都没留下…
展开
-
通讯录--动态版
简易的通讯录往往需要朴实的“烹饪”就能完成一道“美味的佳肴”。我们需要一个通讯录,能够存储联系人的信息,能够对联系人的信息进行增删查改,查询,按姓名排序。相比对之前的三子棋、扫雷,有了一定的了解,这里对通讯录的感受也变得更加简单易懂。原创 2023-07-21 22:32:28 · 223 阅读 · 7 评论 -
通讯录--静态版
简易的通讯录往往需要朴实的“烹饪”就能完成一道“美味的佳肴”。我们需要一个通讯录,能够存储联系人的信息,能够对联系人的信息进行增删查改,查询,按姓名排序。相比对之前的三子棋、扫雷,有了一定的了解,这里对通讯录的感受也变得更加简单易懂。原创 2023-07-20 23:50:33 · 91 阅读 · 2 评论 -
高阶C语言|指针的进阶
数组指针是指针。本质是指针,数组只是修饰词,就像:整形指针:int* pint;能够指向整形数据的指针。浮点型指针:float* pf;能够指向浮点型数据的指针。那么数组指针:能够指向数组的指针(存放的是数组的地址的指针变量)例如:p先和 *结合,说明p是一个指针变量,然后指针指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。原创 2023-07-13 21:18:31 · 147 阅读 · 6 评论 -
高阶C语言|C语言文件管理--输入输出流
磁盘上的文件是文件但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。这里涉及到流,什么是流?流是一种抽象概念,例如:水流,表示水的运动状态,沿着某一路径运动的现象。这里的流用来表示数据流,表示对数据的输入输出进行处理的方式,使得程序可以以连续的方式读取或写入数据。C语言程序只要运行起来,默认就打开3个流:1.标准输入流stdin–从键盘输入2.标准输出流stdout–输出到屏幕上、终端,主要是给用户看。原创 2023-07-27 23:02:55 · 380 阅读 · 14 评论 -
通讯录--集合动态的文件版
简易的通讯录往往需要朴实的“烹饪”就能完成一道“美味的佳肴”。我们需要一个通讯录,能够存储联系人的信息,能够对联系人的信息进行增删查改,查询,按姓名排序。相比对之前的三子棋、扫雷,有了一定的了解,这里对通讯录的感受也变得更加简单易懂。原创 2023-07-29 12:14:12 · 165 阅读 · 1 评论 -
高阶C语言|动态内存管理--笔试题
这个函数项内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。若果参数size为0,malloc的行为是未定义的,取决于编译器。C语言提供了另外一个函数free,专门是用来做动态内存的释放和回收的,函数原型如下:free函数用来释放动态开辟的内存。原创 2023-07-21 20:48:33 · 158 阅读 · 7 评论 -
高阶C语言|结构体,枚举,联合--自定义类型的使用计算
int x;int y;} p1;//声明类型的同时定义变量p1--全局变量 struct point p2;//定义结构体变量p2 //初始化:定义变量的同时赋初值 struct point p3 = {3 , 4 };int age;//初始化 struct Node {int data;//结构体嵌套 struct Node * next;20 , {//结构体嵌套初始化 int mian() {return 0;原创 2023-07-19 23:33:15 · 126 阅读 · 10 评论 -
高阶C语言|字符函数和字符串函数--函数的模拟实现
拷贝num个字符从源字符串到目标空间。如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后便追加0,知道num个。0 };return 0;原创 2023-07-15 11:19:54 · 337 阅读 · 10 评论 -
高阶C语言|深度解剖数据在内存中得存储
char//字符数据类型数值长度:-128~127(-2的7次方到2的7次方-1)shuort//短整型数值长度: -32768~32767(-2的15次方到2的15次方-1)int//整形数值长度:-2147483648~2147483647(-2的31次方到2的31次方-1)long//长整型数值长度:(-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-1)float//单精度浮点型。原创 2023-06-02 23:13:18 · 250 阅读 · 7 评论 -
初阶C语言|操作符详解
(逻辑反操作符)-(负值)+(正值)&(取地址)sizeof (操作数的类型长度(以字节为单位))~(对一个数的二进制按位取反)–(前置、后置- -)++(前置、后置++)2);0);a = - a;p = & a;//可以这样写,也说明了sizeof不是函数 //printf("%d\n",sizeof int);//这样写不支持 return 0;原创 2023-05-28 16:38:50 · 136 阅读 · 8 评论 -
初阶C语言|结构体
/姓名 int age;//年龄 char sex [ 5 ];//性别 char id [ 20 ];//学号 } S;//声明类型的同时定义变量S struct stu a;//也可这样用该类型定义变量a struct stu b = {"张三" , 18 , "男" , "1314" };//初始化:定义变量的同时赋值 stuct point {int x;int y;//结构体嵌套 } p = {4 , 3 , {"丽丽" , 19 , "女" , "520" } }原创 2023-05-30 22:59:34 · 94 阅读 · 7 评论 -
初阶C语言|指针
1.指针是内存中一个最小单元的编号,也就是地址2.平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量总结:指针就是地址,口语中说的指针通常指的是指针变量总结:指针变量,用来存放地址的变量。(存放的指针中的值都被当成地址处理)一个小的单元到底是多大?(1个字节)如何编址?原创 2023-05-29 20:47:34 · 123 阅读 · 7 评论 -
小白的简易扫雷
为了提高代码的可读性,跟三子棋一样写该扫雷分了三个部分,test.c(表达自己的步骤),game.h(实现游戏代码块之前对函数的声明)game.c(游戏代码块的实现),在.c文件中对函数的实现需引用.h文件中的函数声明,例如使用库函数printf需使用头文件#include ,在.c 文件中总要使用到一些库函数,因此可将对应的头文件放于game.h头文件中,在.c文件使用时引用#include "game.h"即可。最终我们需要的是这么一个扫雷模板并在上面进行扫雷,接下来进行分析。原创 2023-05-10 22:06:45 · 126 阅读 · 5 评论 -
小白的简易三子棋
为了提高代码的可读性,写该三子棋分了三个部分,test.c(表达自己的步骤),game.h(实现游戏代码块之前对函数的声明)game.c(游戏代码块的实现),在.c文件中对函数的实现需引用.h文件中的函数声明,例如使用库函数printf需使用头文件#include <stdio.h>,在.c 文件汇总都要使用到该库函数,可将该头文件放于game.h头文件中,在.c文件使用时引用用#include "game.h"即可,最终我们需要的是这么一个三子棋模板并在上面进行下棋,接下来进行分析。原创 2023-05-09 21:39:23 · 91 阅读 · 3 评论 -
初阶C语言|数组
从此图我们发现,列确定了元素个数,确定了每个元素存放的空间在哪里,确定了每个元素的地址,当我们进行二维数组初始化时,若省略了列,就无法表明每个元素到底在哪,其存放形式是如何存放的,相反我们省略行时,列的元素个数明确,为其分配空间时,依然可以找到每个元素的具体位置。这种写法在C99标准中可以这样写,C99标准支持变长数组的概念,数组的大小变量可以指定,但是数组不能初始化。通过上面结果可以分析出,二维数组的每一行的元素是接在上一行的元素后面,可以看出,二维数组在内存中也是连续存放的。原创 2023-05-14 14:33:50 · 128 阅读 · 9 评论 -
初阶C语言|函数
当然库函数不能实现所有的功能,所以更重要的还是自定义函数,例如比较两个数的最大值x : y;//若x>y条件为真返回x,否则返回y } int main() {int a = 0;int b = 0;//将实参a和b传给形参x,y,并将自定义函数返回的值赋给变量ret printf("%d" , ret);return 0;输入2和3,输出最大值3再例如自定义函数实现交换两个数* x = * y;* y = temp;原创 2023-05-13 17:55:16 · 284 阅读 · 4 评论 -
分支语句和循环语句
C语言语句有5类:表达式语句(例如:1+5)、函数调用语句(printf("hehe\n"))、控制语句、复合语句、空语句。主要介绍控制语句(c语言支持支持三种结构:顺序结构、选择结构、循环结构),C语言有九中控制语句,可分三类:1.条件判断语句也叫分支语句:if语句、Switch语句;2.循环执行语句:do whie语句、while语句、for语句;3.转向语句:break语句、goto语句、continue语句、return语句。原创 2023-04-24 13:42:02 · 94 阅读 · 1 评论 -
赚钱之路之初识C语言|第五讲
目录一、指针1.内存1.1地址1.2变量取地址2.指针变量2.1什么是指针变量2.2指针变量大小二、结构体1.变量访问结构体成员2.指针访问结构体成员在内存中,为了有效的对其使用, 将内存划分为一个个内存单元,为了更好的访问内存单元,因此给每个内存单元都进行了一个编号,而这些编号就是内存单元的地址。地址产生:计算机上有地址线(物理线),产生高低电平的信号,这些信号转换成数字:1或0,在32位机器上有32根地址线,这些地址的编号是以16进制形式表示。我们所说的指针其实就是地址或者编号,也就是说地址==编号==原创 2023-04-16 15:33:42 · 87 阅读 · 1 评论 -
赚钱之路之初识C语言|第四讲
赚钱之路之初识C语言|第四讲原创 2023-04-13 14:44:40 · 113 阅读 · 1 评论 -
赚钱之路之初识C语言|第三讲
操作符/:有整数除法和浮点数除法,整数除法得到的是商,浮点数除法得保证除数和被除数至少有一个数是浮点数,这样得到的结果才能是浮点数。:一个独立的模块代码,完成独立的功能,例如Add就是一个函数,有自己的代码功能。赋值操作符:= += -= /= *= %= <<= >>= &= ^= |=操作符sizeof:计算变量占内存的大小,单位是字节。操作符%:取模(取余)得到的是余数,只适用于整数。操作符(类型):强制类型转换,记住少用。:算术操作符、移位操作符、赋值操作符。:0---假,非0----真。原创 2023-04-09 19:39:01 · 95 阅读 · 1 评论 -
赚钱之路之初识C语言|第二讲
枚举常量:就是列举可能出现的值,用一个enum来列举人的性别(MALE,FEMALE,SECRET),列举得性别未初始化时有默认值从0开始依次向下递增也就是0 1 2了,也可以自己赋初始化值4 6 9,初始化之后成为新的常量,如果只初始化一个或者两个,也会对未初始化的常量在上一个初始化的值的基础上继续向下递增,例如赋值了一个4 一个6 ,那么未初始化的第三个就是7了,这些列举的常量的可能取值就是枚举常量。\b会把前面的字符吃掉,但\b只是往后退,把前面的字符覆盖了,所覆盖的字符还是在内存中存在。原创 2023-04-08 17:03:09 · 124 阅读 · 1 评论 -
赚钱之路之初识C语言|第一讲
数据类型创建的变量以Ascall码在内存中存放。scanf的注意事项。原创 2023-04-03 19:44:31 · 136 阅读 · 2 评论 -
赚钱之路之c语言第一步
hello,大家好,相见即是缘分,先自我介绍一下吧,不出意外,我也只是一个普通的学生,来自普通的二本院校,现在是大二的一位学生,学的是智能科学与技术专业,在大一阶段,浑浑噩噩的混了一年,学到的东西都只是表面,被一旁的环境时刻影响着,毫无方向感,如今,我找到了我想要坚定的道路,我重拾信心,奋勇前进,愿在我的c道路上留下一片光彩。原创 2023-04-01 19:52:35 · 277 阅读 · 1 评论