![](https://img-blog.csdnimg.cn/494cf29b51754675a13ef0dd0db37b60.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言基础知识
文章平均质量分 55
C语言的基础知识
补集王子
杨子豪 21级软件工程 四川在读大学生->程序员
展开
-
【数据结构】链表 (4000+字超级详细 图文结合)C语言
4000+字 超级详解链表以前学习了的顺序表缺点:1,空间不够,要扩容,扩容有一定的内存消耗,其次一般扩容是扩二倍,会存在一定的空间浪费2.头部或中间插入效率低(要挪动数据)改善方案:1.按需申请释放空间2.头部或者中间插入删除就不需要挪动数据(新增然后去掉原来的)方框数据较结点1的next存二的地址二的next存三的地址单独弄个指针不让原来的指针动(cur)循环一直更新cur直到遇到NULL难点:...原创 2022-05-24 00:21:43 · 8474 阅读 · 47 评论 -
【C语言】141.环形链表【LeetCode】
图文结合 超详细 C语言原创 2022-05-18 10:04:51 · 5541 阅读 · 25 评论 -
【C++】CM11 链表分隔
链表分割_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?tpId=8&&tqId=11004&rp=2&ru=/activity/oj&qru=/ta/cracking-the-coding-interview/question-ranking原创 2022-05-17 15:14:14 · 722 阅读 · 32 评论 -
CSDN文章编辑指南
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-04-15 17:03:23 · 179 阅读 · 2 评论 -
程序环境和预处理(详解)
1. 程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。(二进制的指令)第2种是执行环境,它用于实际执行代码。2. 详解编译+链接2.1 翻译环境组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。【.obj】每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准C函数库中任何被该程序所用到..原创 2022-04-13 20:50:02 · 305 阅读 · 44 评论 -
文件操作(详解)
1. 为什么使用文件我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数 据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯 录程序的时候,数据又得重新录入,如果使用这样的通讯录就很难受。我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。 这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘原创 2022-04-10 09:44:45 · 799 阅读 · 30 评论 -
动态通讯录
contact.h#pragma once#include <string.h>#include <stdio.h>#include <assert.h>#include <stdlib.h>#define MAX 1000#define NAME_MAX 20#define SEX_MAX 5#define SEX_MAX 12#define ADDR_MAX 30//通讯录初始状态的容量大小#define DEFAULT_原创 2022-04-04 18:28:50 · 358 阅读 · 15 评论 -
动态内存管理
1. 为什么存在动态内存分配我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:1. 空间开辟大小是固定的。2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。太多了用不完,太少了不够用。所以C语言就给了几个函数让程序员动态管理内存2. 动态内存函数的介绍内存分几块区域栈区:放临时的东西,比如局部..原创 2022-04-05 11:12:35 · 219 阅读 · 25 评论 -
通讯录 (简易版)(静态版)
通讯录 (简易版)(静态版)原创 2022-04-04 17:45:59 · 578 阅读 · 6 评论 -
深度剖析数据在内存中的存储
深度剖析数据在内存中的存储char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数 //C语言有没有字符串类型?以及他们所占存储空间的大小类型的意义: 1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)。 2. 如何看待内存空间的视角...原创 2022-04-04 15:02:09 · 202 阅读 · 21 评论 -
VS2019调试 实用调试技巧 (优秀程序员必看)
一个不会调试的程序员不是一个合格的程序员那就成了只会写bug不会改bug的程序员哈哈1. 什么是bug?第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误哎没错人家还真是虫子(飞蛾)早期的计算机是非常庞大的 再一次检查故障的时候发现了一只飞蛾死在了二极管上因此人们此后都叫错误为bug,找错误也叫找bug2. 调试是什么?有多重要?所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心有愧, 就必然需要掩盖,那就一定会有迹象,迹象越多就越容易顺原创 2022-03-04 18:33:09 · 13216 阅读 · 27 评论 -
C语言.结构体
1. 结构体的声明 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.2 结构的声明 struct tag{ member-list; }variable-list;例如描述一个学生:typedef struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号}Stu;//分号不能丢1.3 结构成员的类型原创 2022-03-01 21:40:25 · 182 阅读 · 18 评论 -
C语言.指针
1. 指针是什么2. 指针和指针类型3. 野指针4. 指针运算5. 指针和数组 、6. 二级指针7. 指针数组1. 指针是什么?原创 2022-02-28 19:39:09 · 302 阅读 · 13 评论 -
C语言.操作符
1. 操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员2. 算术操作符+ - * / %1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。3. 移位操作符<...原创 2022-02-26 17:18:40 · 231 阅读 · 22 评论 -
C语言.数组
1. 一维数组的创建和初始化1.1 数组的创建type_t arr_name [const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式,用来指定数组的大小//代码1int arr1[10];//代码2int count = 10;int arr2[count];//尽量避免数组长度为变量(canst修饰的变量也不行,常变量)注:数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数 (vs就原创 2022-02-23 23:11:13 · 1115 阅读 · 14 评论 -
C语言,函数递归
7. 函数递归7.1 什么是递归?程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略 只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小各个程序员写各自的函数模块最后别人要用的时候直接在头文件里包含就行了把文件设置为静态库这原创 2022-02-22 11:43:49 · 485 阅读 · 5 评论 -
C语言:函数1.0
1. 函数是什么?维基百科中对函数的定义:子程序子程序是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软 件库。2. C语言中函数的分类:1. 库函数:C语言厂商提供的,能直接使用的的函数2. 自定义函数:C语言本身没有的,由自己创造实现的函数2.1 库函数:早期的C语言没有库函数,每次都得程序员自己编写,这样会造成代码冗余,原创 2022-02-21 19:54:29 · 594 阅读 · 6 评论 -
庖丁解C 3.0
请问循环要循环多少次?#include int main(){ int i = 0; int k = 0;for(i =0,k=0; k=0; i++,k++) k++;return 0;}答案是零次!for里面的判断部分他变成了赋值,但是赋值结果是0,所以是假,因此for不执行1.1 do while1.1.1 语句的语法:do循环语句;while(表达式);先执行循环语句然后再判断表达式是否成立1.1.2 语句的特点:循环...原创 2022-01-17 21:32:36 · 616 阅读 · 9 评论 -
庖丁解C2.0
C生万物,学语言一定要稳扎稳打原创 2022-01-15 22:51:18 · 421 阅读 · 16 评论 -
C语言深度剖析2.0
主要讲static原创 2022-01-15 12:15:04 · 474 阅读 · 7 评论 -
C语言深度剖析1.0
运行:文本代码-->可执行程序(二进制文件).exe->双击启动该程序win中鼠标双击程序-->将程序加载到内存中(任何程序咋运行之前都必须加载到内存当中【速度快】)程序未加载之前 都在硬盘中所有的变量本质是在 内存 的某个位置开辟空间,用来保存数据。为什么需要变量?因为有数据需要暂时被保存起来,等待后续的处理。任何时刻不是所有数据都要立马被计算定义与声明定义:开辟空间,(只能定义一次)声明:告知 已经定义(可声明多次)生命周期vs作用域(开辟到释放原创 2022-01-13 22:53:20 · 532 阅读 · 8 评论 -
C语言 打印九九乘法表 for循环
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int i, j; for (i = 1; i<=9 ; i++) //规定有几排 { for (j = 1; j <= i; j++) //规定一排有几个 { printf("%d*%d=%d ", i, j, i * j); } printf("\n"); } return 0;}简单易懂看完了别忘了 .原创 2021-12-18 10:53:03 · 6889 阅读 · 115 评论 -
C语言 画心形 程序员的简单浪漫
C语言 画心形 程序员的浪漫 (看完记得三联哦~)原创 2021-12-16 12:00:50 · 11687 阅读 · 14 评论 -
C语言 圣诞树(程序员的浪漫)
你们要的圣诞树它来啦!快去送给心爱的人吧!耐心等待(别忘了三联哟~)#define _CRT_SECURE_NO_WARNINGS 1#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define PI 3.14159265359ffloat sx, sy;typedef float Mat[4][4];typedef.原创 2021-12-16 11:48:25 · 30701 阅读 · 37 评论 -
scanf函数不能运行(VS2019)(解决方案)
很多同学在出识C语言时大多会遇到scanf不能使用的问题先上解决方案!方案一:在每一个scanf后面加_s scanf—>scanf_sscanf_s方案二:在项目第一行定义_CRT_SECURE_NO_WARNINGS#define _CRT_SECURE_NO_WARNINGS 1方案三:一劳永逸,但需要一点技术。找到vs的拷贝文件把我们方案二的代码直接放在拷贝文档里,以后每次建立新项目时就会自动添加这行代码(详情请看本人空间的:VS文件初始化教程)...原创 2021-12-11 11:37:40 · 12023 阅读 · 7 评论 -
庖丁解C1.0
之前就在B站看了很多视频,感觉很符合我的口味,很喜欢他们的风格,加油!小比特——大梦想!欲戴皇冠,必承其重!遇到问题,先自己解决!{C语言是高级语言哦~(计算机考试会考的哈哈)}1.第一个代码肯定是打印printf了啦#include<stdio.h> 与 printf对映 std-标准 i-input o-output h-头文件#include<stdio.h> //printf对映 std-标准 i-input o-output h-头文..原创 2021-12-10 23:01:27 · 821 阅读 · 8 评论 -
C语言(递归)使用递归方法,求解X^n
n为整数,x不等于0;int f(int x, int n) { if (n == 0) { return 1; } else { return x * f(x, n - 1); }}int main() { int a, b,c; printf("请输入x和n:"); scanf("%d%d", &a, &b); c = f(a, b); printf("结果为%d", c);原创 2021-11-02 22:37:52 · 7799 阅读 · 6 评论 -
C语言(素数)[解法]:编写prime(m)判断m是否为素数,当m为素数返回1,否则返回0;
编写prime(m)判断m是否为素数,当m为素数返回1,否则返回0;原创 2021-11-02 22:33:59 · 14640 阅读 · 2 评论 -
C语言:输入年月日,输出这是这一年的第几天
#include<stdio.h>#include<stdlib.h>void Divisible() { int i; printf("请输入一个整数\n"); scanf_s("%d", &i); if (i % 5 == 0 && i % 7 == 0) { printf("Yes\n"); } else { printf("No\n"); }}void Day() { /*判断闰年的方法:1,如果该年份既能被4整除又不能被.原创 2021-11-02 22:27:45 · 1625 阅读 · 1 评论 -
C语言杨辉三角:输入行数(1 ~ 20)VS2019
#include <stdio.h>#include<stdlib.h>int main(){ int i, j, n, k, t; long Buf[21] = { 0,1 }; //用于保存一行数据 printf("请输入杨辉三角形的行数(1 ~ 20):\n"); scanf_s("%d", &n); for (i = 1; i <= n; i++) //输出n行 { t = 0; .原创 2021-11-02 22:12:36 · 783 阅读 · 0 评论 -
scanf与scanf_s
函数先定义后调用所以子函数要写在主函数前头然后把子函数的名字写在主函数里#inlude<stdio.h>int test_bbbb(){}int main(){ test_bbbb(); return 0;}原创 2021-10-17 20:46:15 · 163 阅读 · 1 评论 -
输出1000以内的所有奇数和偶数,采用for循环以及if语句
思路:除2取余——%d2#include <stdio.h>int bruce(){ int i;for(i=0;i<1000;i++){ if(i%2==1)printf("奇数%d",i); else printf("偶数%d\n",i); }}int main(){ bruce(); return 0;}原创 2021-09-25 22:10:31 · 2673 阅读 · 1 评论 -
C语言学习第5天
int main(){ short age = 28;//向系统申请两个字节(=16bit位) float weight = 62.8f;(为啥加f:系统默认的小数是双精度小数 用float会产生 警告 加个f明确下就是用这个就不会产生警告) return 0;}变量(变的) 和 常量(不变的)定义变量的方法:类型+变量名=赋值;例:int age =20;变量的分类:局部变量:定义在代码块 {} 内部的变量全局变量:定义在 大...原创 2021-07-20 23:18:45 · 234 阅读 · 3 评论 -
c语言学习第四天
今天差点把文件搞丢了 吓死我了打了一大坨突然找不到了最后发现原来创了两个项目 一个在头文件 一个在源文件这两个有啥区别啊?(头文件,源文件)(上图那个1248是 字节 不是最小的单位bit)字节 计算机 -(二进制)计算机中的单位:bit -比特位...原创 2021-07-20 16:19:06 · 158 阅读 · 1 评论 -
c语言学习第三天
哎,我回来了 时隔几天这几天我又住院了哎 大家一定要注意自己的饮食习惯呀!原创 2021-07-19 21:09:10 · 146 阅读 · 1 评论 -
c语言学习第一天
//记得保存养成好习惯Ctrl+s创建工程(敲代码的文档)左上角文件新建项目(Ctrl+shift+N)visualC++→空项目改名称,定位置右击源文件,添加,新建项(C+S+A)visualc++→c++文件(cpp)改名称//几乎所有都是 int main() {return 0}//main 主函数(有且只有一个) 后头加括号//int 是整形的意思//main 前面的int表示main函数调用返回一个整形指//return 0表示返回整形//print f--...原创 2021-07-13 19:17:37 · 228 阅读 · 4 评论