c语言学习
文章平均质量分 92
m_yx
好好学习,天天向上
展开
-
数据结构-二叉树(包含二叉树的层次建树、前中后序遍历、层次遍历解析及代码)
树是n(n>=0)个结点的有限集。当n=0时,称为空树。在任意一棵非空树中应满足:1)有且仅有一个特定的结点称为根的结点。2)当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T1,T2,......,Tm,其中每个集合本身又是一棵树,并且称为根的子树。二叉树是另一种树形结构。其特点是每个结点至多只有两棵子树(即二叉树中不存在度大于二的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。与树相似,二叉树也以递归的形式定义。原创 2022-12-11 17:08:13 · 2709 阅读 · 0 评论 -
数据结构-链表基础详解(超详细代码)
链表的定义及代码包含顺序表和单链表目录一、线性表 1.线性表定义2.线性表特点二、线性表的顺序表示(顺序表)1、顺序表的优缺点2.插入操作3.删除操作4.练习三、线性表的链式表示(单链表)1.单链表定义2.单链表优缺点3.插入操作4.删除操作 5.查找操作5.1按序号查找结点 5.2按值查找结点 6.练习1、顺序表的优缺点1.优点:最好情况:在表尾插入元素,不需要移动元素,时间复杂度原创 2022-12-04 14:10:30 · 3935 阅读 · 0 评论 -
c语言学习(十三)c语言文件操作
目录什么是文件程序文件数据文件文件名文件类型文件缓冲区文件指针文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定硬盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件包括源程序文件(后缀为.c)目标文件(windows环境后缀为.obj)可执行程序(windows环境后缀为.exe)。文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。我们后面要讨论的是数据文件。在以前各章所处理数据的输入输出都是以终端为对象的,即从终端原创 2022-07-09 21:10:13 · 78 阅读 · 0 评论 -
c语言学习(十二)动态内存分配
目录为什么存在动态内存分配动态内存函数的介绍mallor和freecallocrealloc常见的动态内存错误对NULL指针的解引用操作对动态开辟内存的越界访问 对非动态开辟内存使用free释放 对同一块动态内存多次释放动态开辟内存忘记释放(内存泄漏)几个经典的笔试题 c/c++程序的内存开辟c/c++程序内存分配的几个区域:柔性数组我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间原创 2022-07-05 21:59:25 · 147 阅读 · 0 评论 -
c语言学习(十一)自定义数据类型-结构体
目录结构体结构体类型的声明结构的基础知识结构的声明结构的自引用结构体变量的定义和初始化结构体内存对齐修改默认对齐数结构体传参结构体实现位段(位段的填充&可移植性)什么是位段位段的内存分配 位段的跨平台问题位段的应用枚举枚举类型的定义枚举的优点枚举的使用联合(共用体)联合类型的定义联合的特点联合大小的计算结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。struct tag{ member-list;}variable-list;例如描述一个学生:特殊声明 :原创 2022-06-29 19:11:51 · 776 阅读 · 0 评论 -
c语言学习(十)字符串函数和内存函数使用和剖析
目录本章重点函数介绍求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数介绍strncpystrncatstrncmp字符串查找strstrstrtok错误信息报告strerror字符分类函数:字符转换函数:内存操作函数memcpymemmovememset--内存设置memcmp重点介绍处理字符和字符串的库函数的使用和注意事项size_t sstrlen(const char* str);返回字符串str的字符串个数字符串以'\0'作为结束标志,str原创 2022-06-21 22:02:48 · 221 阅读 · 0 评论 -
c语言学习(九)指针详解
目录 1.字符指针2.数组指针数组指针的定义3.指针数组 &数组名VS数组名数组指针的使用4.数组传参和指针传参一维数组传参二维数组传参 一级指针传参二级指针传参 5.函数指针阅读两段有趣的代码:6.函数指针数组7.指向函数指针数组的指针8.回调函数9.指针和数组练习题指针的主题我们在初始指针中接触过了,我们知道了指针的概念:1.指针是变量,用来存放地址,地址唯一标识一块内存空间。2.指针的大小是固定的4/8个字节(32位平台/64位平台)。3.指针是有类型的,指针的类型决定了指针的+-整数的步长,指针解原创 2022-06-09 10:24:28 · 955 阅读 · 0 评论 -
c语言学习(八)数据的存储
目录1.数据类型介绍类型的基本归类:整型在内存中的存储原码、反码、补码大小端介绍浮点型在内存中的存储2.整型在内存中的存储,原码,反码,补码3.大小端字节序介绍及判断4.浮点型在内存中的存储解析前面我们已经学习了基本的内置类型char //字符数据类型short //短整型int //整型long //长整型long long //更长整型float //单精度浮点数double //双精度浮点型//c语言有没有字符串类型?以及他们所占存储空间的大小。类型的意义:1.使用这个类型开辟内存空间的大小(大小决定原创 2022-06-02 21:48:43 · 118 阅读 · 0 评论 -
c语言学习(七)初识结构体
目录结构体类型的声明结构的基础知识结构的声明结构成员的类型结构体变量的定义和初始化结构体成员的访问结构体传参结构是一些值的集合,这些值成为成员变量,结构的每个成员可以是不同类型的变量。例如描述一个学生:结构成员的类型结构的成员可以是标量,数组,指针,甚至是其他结构体。有了结构体类型,那如何定义变量,其实很简单。结构体成员的访问结构体变量访问成员 结构体变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数。例如: 我们可以看到s有成员name和age;那我们如何访问s的原创 2022-05-31 14:51:14 · 84 阅读 · 0 评论 -
c语言学习(六)初始指针
目录 1.指针是什么2.指针和指针类型指针+-整数指针的解引用3.野指针 野指针成因1.指针未初始化2.指针越界访问 3.指针指向的空间释放 如何规避野指针4.指针运算指针+-整数 指针-指针指针的关系运算 5.指针和数组6.二级指针7.指针数组在计算机科学中,指针是编程语言中的一个对象,利用地址,他的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。那我们就可以这样理解:内存指针原创 2022-05-30 00:32:29 · 82 阅读 · 0 评论 -
c语言学习(五)操作符详解
目录操作符算数操作符移位操作符(移动的是二进制位)左移操作符 移位规则:右移操作符 移位规则:位操作符 赋值操作符 复合赋值符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员1.[]下标引用操作符2.()函数调用操作符 接收一个或者多个操作符:第一个操作数是函数名,剩余的操作数是传递给函数的参数。3.访问一个结构的成员 表达式求值隐式类型转换整型提升的意义算术转换操作符的属性操作符优先级1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。2.对于/操作符如果两个操作原创 2022-05-28 21:57:43 · 253 阅读 · 0 评论 -
c语言学习 (四) 数组
目录1.一维数组的创建和初始化1.1数组的创建1.2数组的初始化2.一位数组的使用3.一位数组在内存中的存储4.二维数组的创建和初始化4.1二维数组的创建4.2二维数组的初始化5.二维数组的使用6.二维数组在内存中的存储7.数组作为函数参数8.数组的应用实例1.三子棋9.数组的应用实例2.扫雷游戏数组是一组相同类型的元素的集合。数组的创建方式:type_t arr_name[const_n];type_t 是指数组的元素类型。arr_name 是数组名const_n 是一个常量表达式,用来指定数组的大小。原创 2022-05-25 23:31:55 · 530 阅读 · 0 评论 -
c语言学习(三) 函数和递归
本章主要掌握函数的基本使用和递归目录1.函数是什么?2.c语言中的分类2.1 库函数2.2 自定义函数3.函数参数3.1实际参数(实参)3.2形式参数(形参)4.函数的调用:4.1传值调用4.2传址调用练习:5.函数的嵌套调用和链式访问5.1嵌套调用5.2链式访问 6.函数的声明和定义6.1函数的声明6.2函数的定义7.函数的递归7.1函数递归7.1.1什么是递归?7.1.2递归的两个必要条件7.2 递归与迭代数学中我们常见到函数的概念。但是你了解c语言中的函数吗?维基百科中对函数的定义:子程序在计算机科学原创 2022-05-22 23:18:26 · 185 阅读 · 0 评论 -
c语言学习 (二)分支和循环和getchar的使用注意
目录二、分值语句和循环语句1.什么是语句2.分支语句(选择结构)2.1 ifif练习2.2 switchswitch练习3.循环语句3.1 while3.1.1break介绍3.1.2 continue介绍我们在这补充两点知识:EOF和getchar()(很重要!缓冲区问题)、putchar()3.2 for3.3 do while前言:c语言是一门结构化的程序设计语言1.顺序结构、2.选择结构、3.循环结构我们生活中所有的情况也就这三种本章我们重点学习分值语句和循环语句c语言中由一个分号,隔开的就是一条语原创 2022-05-19 18:37:34 · 714 阅读 · 0 评论 -
c语言学习作业(一)学完了分支和循环做几道题巩固一下
目录1. 打印100~200之间的素数2. 输出乘法口诀表3. 判断1000年---2000年之间的闰年1. 打印100~200之间的素数素数,就是除了1和他本身,不能被其他数整除的数字。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ for (int i = 100; i <= 200; i++) { int a = 1; for (int j = 2; j &l...原创 2022-05-20 14:33:07 · 102 阅读 · 0 评论 -
c语言学习(基础知识后半部分)
目录5.字符串+转义字符+注释6.选择语句7.循环语句8.函数9.数组10.操作数10.1算术运算符10.2移位操作符10.3赋值操作符 10.3.1单目操作符 10.3.2 双目操作符 10.3.3 三目操作符10.4复合赋值符10.5 关系操作符---比较两数直接大小之类的一些关系10.6 逻辑操作符10.7 逗号表达式 --- 逗号表达式的运算过程为:从左往右逐个计算表达式。10.8 下标引用、函数调用和结构成员11.常见关键字11.1关键字typedef11原创 2022-05-17 17:54:55 · 690 阅读 · 0 评论 -
c语言学习(前言+前半部分基本知识)系统学习关注我的c语言专栏
今天准备开始写博客,先从c语言开始,进行系统学习,c写完之后会进行数据结构、c++等等的学习更新我用的vs2019版本,如果不会下载可以在其他博客去找,或者b站上去查,有很多注意:vs2019的scanf需要加入宏定义#define_CRT_SECURE_NO_DEPRECATE如果觉得麻烦可以在vs的文件里搜索newc++File将其拉复制到桌面(直接改是改不了的,需要管理员权限),把#define _CRT_SECURE_NO_WARNINGS 1复制到第一行保存,把桌面的复制到所在路径,替换就好了 。原创 2022-05-15 13:38:17 · 641 阅读 · 0 评论