自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 C++ Day1

【代码】C++ Day1。

2024-06-18 16:05:43 561

原创 数据结构线性表篇-顺序表的实现

2.线性表的介绍1.数据结构的介绍⚀基本概念⚁常见的数据结构当我们了解了数据结构的基本概念之后,再为大家介绍一下常见的数据结构:数据结构可以从两方面来分析:逻辑结构和物理结构2.线性表的介绍⚀基本概念线性表就是将n个具有相同特性、相同类型的数据一个一个地链接起来,使得数据存放的方式在逻辑结构上看起来是一条直线,一条连续的存放数据的直线。。线性表是一种最基本的数据结构,它可以看作是,每个元素都有唯一的(除了第一个和最后一个元素)。这种结构体现了数据元素之间的一对一关系。

2024-04-16 20:26:43 747

原创 C语言编译和链接

(1).#define定义常量😎定义方法。

2024-04-11 23:55:05 1071

原创 C语言文件操作2

频繁的写入就会使得计算机的效率变低,此时就有了缓冲区的概念,数据先不直接磁盘/内存上,而是先放到缓冲区上,当缓冲区的数据被写满之后,再刷新到目标空间上,这就减少频繁的;当内存中的数据发生改变时,硬盘中的数据也必须跟着改变,如果内存中的数据频繁改变,磁盘中的数据也要跟着频繁的变,那么结果就是内存和磁盘频繁打交道。fread函数不同于前面的字符、文本读取函数,该函数读取是原始的方式(字节的读取,二进制的读取),指定大小的读取,并非一个字节的字符,一整串字符的读取。成功返回成功写入的字符的个数;

2024-04-09 20:33:53 853 4

原创 C语言文件操作1

文件名,接收文件名的起始地址,文件名可以包含文件路径。文件的打开方式,函数会提供一些方式,接收的是对应方式名字的地址。FILE*返回类型为该文件的文件指针,失败返回NULL。名称作用文件不存在时'r'read,只能向文件读取数据,只读打开失败,报错'w'创建新的文件,如有已存在的同名文件,同名文件的数据被丢弃,新的文件替换原来的文件。只能向文件写入数据,只写。创建新文件,成功打开'a'append,只能向文件的末尾附加数据打开失败,报错'r+'向文件读取数据或写入数据,读写打开失败,报错。

2024-04-07 20:22:47 856 2

原创 C语言动态内存管理

创建后不可改变大小的,比如使用int类型创建变量,创建数组,他们的大小在使用前就已经规定好了,但是!!!有些内存空间大小只有等到我们要使用的时候才能确定大小,这时官方就引入动态内存来达到每个程序员都能自己设置内存大小的目的。⚁内存分区前面我们学习的变量有全局变量,静态变量(static修饰),局部变量,函数形参,const修饰的变量,

2024-03-27 10:59:35 1061

原创 C语言自定义类型联合体和枚举

联合体又称共用体,和结构体类似作用都是将不同类型的变量进行集成,从而得到一个新的类型变量,不同的地方就在存储方式上,结构体是为所有类型数据都分配空间,而联合体所有类型数据共用一块空间,且空间的大小为这些类型中所占空间最大类型的大小。⚁。

2024-03-24 16:20:54 708

原创 C语言自定义类型结构体

比如:对于一个学生而言,学生的属性就有他的名字,性别,年级,成绩等等,为了将这些属性都存储在一起,这时就需要新的自定义类型来进行将不同类型的数据进行整合,这就是结构体类型。综上所述,结构体的内存对齐是计算机编程中的一个重要概念,它关系到程序的性能、硬件兼容性以及代码的可维护性。对于这种没有将结构体类型名的结构体,就意味着不能通过结构体类型来创建结构体变量,这种只能使用它后面的结构体变量,可以称为一次性结构体。这种在声明结构体时不声明结构体类型名,而在声明后接着创建结构体变量的操作就称为结构体的匿名声明。

2024-03-22 23:00:01 1012

原创 C语言数据在内存中的存储

大端字节序存储是指将数据的低位存储在高地址处,而将数据的高位存储在低地址处。大端字节序大端字节序存储是指将数据的低位存储在低地址处,而将数据的高位存储在高地址处。小端字节序。

2024-03-20 21:47:08 927

原创 C语言内存函数

目标空间的地址,目标空间数据类型位置,使得指针类型未知,故而都使用void*类型适用任何类型数据。const void * source 源空间的地址,只对源空间的数据做拷贝不做修改,故constvoid* 返回void*类型的地址是由于目标空间的指针类型未知。size_t num 无符号类型的num,拷贝字节的大小/数量。

2024-03-18 19:37:59 829

原创 C语言字符串函数strstr、strtok和strerror

str1字符串1的首字符的指针。str2字符串2的首字符的指针。const修饰是因为只用于查找,不做修改,防止写错误代码。str需要被切割的字符串的首地址,如果是第一次被切割则为字符串的首地址,如果不是第一次则是NULL空地址(函数会在切割后保留切割符出现的地址)。delimiters是分隔符/切割符,可以是单个分割符的地址,也可以是分割符集合(字符串)的首地址。如果存在分隔符,则函数返回切割后字符的首地址,如果不存在,则返回空指针NULL。此函数在切割个同意字符串时,

2024-03-17 16:09:14 893

原创 C语言字符函数和字符串函数

都是将字符转

2024-03-16 20:35:19 1233 1

原创 每日一题-数组与指针

先加加在使用,那就是数组cp第二个元素的地址,解引用一次就是第二个元素,存的是字符串"POINT"的首地址,打印的就是POINT。*cpp[-2] + 3==*(*(cpp-2))+3,经过上两轮cpp已经自加两次了,此时cpp是指针数组cp第三个元素的地址。指针数组c的第四个元素的值是"FIRST"首字符的地址,+3就是"FIRST"中第四个字符的地址,最后打印的就是"ST"cp的第一个元素的值是c+3,就是指针数组c第4个元素的地址,那么*(*(cpp-2))就是指针数组c中的第四个元素。

2024-03-13 23:49:08 762 2

原创 C语言sizeof操作符与strlen函数

计算变量的内存空间大小。底层实际上是对变量类型的计算。是一个单目操作符,不是函数,后面的括号可以省略。

2024-03-12 19:53:36 1062

原创 C语言qsort函数的模拟实现

void* base, //void*指针可以存放各种类型指针,指向需要排序数组首元素的地址size_t num, //数组元素的个数num,数组元素大于0,所以是size_t无符号类型;通常计算数组大小是使用sizeof(数组的地址)/sizeof(数组元素大小),但是这里只有数组首元素的地址,所以必须告诉qsort函数数组大小size_t size,//数组元素的大小size(单位:字节),在排序时需要找到两个元素进行比较,有了元素的大小,就知道指针一次要访问多少个字节,就能准确找到元素。

2024-03-11 07:00:00 938

原创 C语言函数指针与指针函数

我们知道一级指针+1,就是跳过1次读取,是地址加上指针所指向类型的字节数,那么对于二级指针+1,就是地址加上二级指针所指向的类型的字节数,也就是是一级指针的字节数,而一级指针的字节在x64环境下是8个,x86环境下是4个,所以二级指针+1就是地址+4/8。分析:这里test函数就是一个回调函数,它是被使用函数指针ptest来调用的,test函数的指针传给menu函数,在menu函数类似一个特定条件,在menu函数下使用指针调用test函数打印。指针函数是个函数,这个函数的返回类型是指针。

2024-03-10 07:00:00 903 1

原创 C语言数组指针与指针数组

注意:指针都只能存一个内存单元的地址,而不同类型的指针就导致指针具有不同的访问性质,例如这个数组指针,他所指向的类型是数组,就意味着他一次要访问完数组元素的首地址,那么它一次读取的就是整个数组的字节数,而对于整形指针来说,当他存下数组的首元素地址,它所指向的是整形变量,但他的访问质就是一次读取4个字节,读取一个元素。而p3,p4是存的字符数组的首字符的的地址,数组是一个变量,为他开辟空间是栈区上开辟的,这是两个不同的数组,自然空间不同,p3和p4的指针所存的地址自然不同。,让编译器识别为指针的创建;

2024-03-09 11:49:22 1144

原创 每日一题—字符串旋转判断

原因:创建数组时没有规定大小。2.写程序时遇到的报错。1.具体代码以及思路。

2024-03-06 23:57:36 377 1

原创 C语言指针基本知识

const修饰的变量变成“常量”,这个不是真正意义上的常量,只是具有常属性的常量。如果const在*p的左边修饰,那么*p(解引用p==变量)(*p具有常属性) 不能被修改,p(p==地址)的值能修改。

2024-03-05 23:04:38 792 1

原创 C语言函数基础知识

库函数只是一些我们会经常用到函数,不可能你想要一个什么功能的函数就能在库函数里面找到,所以就需要我们自己敲代码来创建函数,这就是自定义函数。ret_type 函数的返回类型(return_type)fun_name 函数名称(function)para1,para2,* 函数的形式参数(parameter1,parameter2,......)" 表示声明语句的结束注意:函数的声明,形参的类型必须写,形参的名字可写可不写见上面3.函数的创建。

2024-03-02 21:30:25 867 1

原创 C语言数组基本知识

数组就是指一群元素的集合一种相同类型元素的集合称为数组,如字符数组,整形数组等。

2024-02-27 15:44:16 365 1

原创 C++类的知识介绍1(概念,访问限定符和struct等)

首先我们要知道C语言是基于面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题,而C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成,比如送外卖对于C语言来说只在乎这个外卖怎么送到客户手上,不在乎这个过程中出现的对象,而C++在乎的是送外卖这个过程出现了哪些对象(客户,商家,骑手),在乎的是对象之间的联系类在这里可以简单的理解就是一件事情为一个类,类中对事情发生中出现的对象和对象之间的联系进行封装;

2023-11-20 20:06:23 197 3

原创 C++基础知识介绍4(auto关键字和nullptr空指针)

举个例子:可以看出如果同一行的变量类型不一样就会报错,所以可以得出auto在同一行定义多个变量的时,变量类型必须相同//这一行都是整形//c为字符,b为整形,报错//j为整形,k为浮点型,auto识别同一行类型必须相同。

2023-11-14 22:38:17 95 2

原创 C++基础知识介绍3(引用和内联函数)

引用是指给已有的变量取个别名,使用引用不会开辟新的空间,引用取的别名和引用的变量指向的是同一块空间简单点就是说:你原来叫张三,我给你取个小名叫王麻子,这两个名字指向的都是同一个人。

2023-11-14 16:56:17 171 1

原创 C++基础知识介绍2(函数重载)

函数重载是指在C++中,同一作用域下有多个函数功能不同的同名函数,这种情况称为函数重载,这些同名函数形参列表必须不同,如参数个数不同,类型不同和顺序不同等。

2023-10-28 23:57:49 84 3

原创 C++基础知识介绍1(输出、输入、命名空间和缺省参数)

定义方法int add(int a = 0, int b = 0)//在定义函数参数的时候给参数赋个初始值,这个初始值就是缺省参数int main()//直接调用函数,不传参数,此时使用的是缺省参数作为参数,返回0。

2023-10-27 19:28:12 104 1

原创 学习—数据结构—链表

节点链表组成的基本单元,包含。

2023-10-17 21:49:14 108 2

原创 动态内存管理

动态内存就是可以变化的内存,一些变量存放在的空间是是固定的(int的4字节,char的1字节),存放时有空闲的,并没有完全利用,那么通过使用动态内存就能更好地利用内存1.malloc函数是用来创建空间的,在堆区上面开辟一段连续的空间2.malloc函数的形式:void* malloc (size_t size);使用时要包含头文件#include<stdlib.h>该函数的形式参数是size_t,表示开辟一段连续空间的大小,单位是字节返回的void*的指针,void型指针方便开辟任何类型的空间。

2023-09-27 00:04:36 71 2

原创 C语言中几种常见的操作符‘ << ‘,‘ >> ‘,‘ & ‘,‘ | ‘,‘ ^ ‘。

可见,正数的正码,反码,补码相同,向左移动一位,最大位的0就被丢到了,然后再在右边补上一个0,这就是逻辑移位,得0到1010,也就是10。1.1' & '表示按位或,如果两个整形的二进制补码相对应的位置全为1则或的结果为1,其他情况结果都为0。1.2' | '表示按位与,如果两个整形的二进制补码相对应的位置全为0则与的结果为0,其他情况结果都为0。而负数的补码则是符号位不变,其余位取反,补码在反码的基础上-1,然后再取反,也可以先取反,再+1。另在一种,就是补上符号位,称为算数位移。注意:操作的是整形!

2023-09-12 17:15:53 154

原创 进制,原码,反码,补码

2进制,计算机中采用最广泛的进制,计算机所能接受的基本其实只有两种,就是0,1哈,其实就是低电平表示0,高电平表示1,通过0,1来表示我们日常可见的数字0,1,2,3,4,5......如0,1,,1再加1就是2,但是2进制没有2这个数字,所以再加1得时需要将现在的1向前进一位,也就是10表示2,同理11表示3,100表示4,101表示5,110表示6,111表示7,1000表示8。计算机常见的进制有:2进制,8进制,10进制,16进制。

2023-09-12 17:15:19 96

原创 扫雷游戏的实现

首先棋盘上非雷与雷都是未知的。当我们点击其中某一个格子时,出现的只有两种情况非雷和雷,其中是非雷的格子,如果该格子周围(从格子旁边一个环绕一圈)没有雷,那么则显示为空白,如图1;如果该格子周围有雷则显示雷的个数(1-8),如图2;而在平常扫雷游戏中如果该格子周围无雷,它就会向周围扩散,周围的格子都会被显示出来,以此类推,直到扩散到空白格子周围有雷情况时,也就是一群数字包裹空白是时,如图3。通过非雷位置上显示的周围雷的信息,将所有非雷的位置全部排查完游戏才结束。

2023-09-12 17:14:59 116

原创 23.9.8函数

2.函数就是一段小程序,通过函数把复杂的程序分为几个简单的大体,方便程序检查,同时也方便单独使用。4.形式参数,形式参数是一个形式上生成的空的参数,有特定的储存空间,但在为空状态下无储存空间,5.函数里面可以调用函数,但是函数的声明定义不能再函数里面。,即形式参数有特定值不为空,形式参数才会开辟空间,,且在函数运行完后形式参数会自动清空,空间消失。1.return后面返回的可以是一个表达式。1.函数的分类,分为库函数和自定义函数。3.链式,一个函数作为另一个函数的参数。

2023-09-08 15:22:23 39 1

原创 初学C语言第一天

5.没有解题思路,(1)判断几个数大小顺序并排序,直接用第一个和剩余的数比,以此内推第二个第三个,a和b交换数值的方法,直接//a=b//是错误的,这个语句的执行是右边的数赋值给左边,只能是右边到左边,左边不会到右边;6.printf函数的使用,格式化printf("格式化字符串",参数表),其中格式化字符串可以单独只含有字符串,后面就不需要跟参数表,或者前面含有以%开头的占位符,后面也需要跟与之相对应的参数,其中占位符的宽度是参数表对应参数的最小宽度,参数都可以大于占位符的宽度。

2023-09-08 14:04:46 48 1

原创 初学C语言

嘿嘿,我是来自长沙理工大学城南学院的准大二的学生,今天是2023年7月20号,是我学C语言的第一天,我的目标是在今年内学懂C语言,打算每天用4个小时来学习,有课的话每天1,2个小时,每天都学,周末再增加学习时间,我想进到小米。

2023-07-20 20:00:04 25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除