自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态创建链表(头插法、尾插法)

本文介绍了动态创建链表的两种方法:头插法和尾插法,并重点讲解了头插法的实现。头插法的核心是将新节点插入链表的头部,成为新的头节点。文章通过代码示例详细展示了头插法的实现过程,并强调了在初始化新节点时,必须将其next指针设置为NULL,以避免未定义行为和野指针问题。此外,文章还提到在不同操作系统(如Windows和Linux)上,未初始化指针可能导致不同的行为,因此初始化next指针是必要的。最后,文章展示了完整的头插法代码,并预告了后续将学习头插法的优化方法。

2025-05-09 21:41:38 858

原创 学习c语言的链表的概念、操作(另一篇链表的笔记在其他的栏目先看这个)

看完之后是这样的我们是初学者那么我们就不应该考虑链表的效率问题,我们要先理解链表的含义和和操作原理,那么我们之后有更好的基础了之后,就可以去考虑链表的效率问题了。,而且数组一开始就把大小确认了比如int arr[10],还有地址也都是连续的,因此我们需要对数组或者结构体进行增删改查的时候就会显得。这个代码里面包含了前插法(增),后插法(增),删除指定元素,改元素,查元素其中前插法和后插法。这边定义一个found是很巧妙的,count。

2025-05-09 00:04:30 840

原创 学习Linux的第四天

Nat模式每个虚拟机的DNS都是一样的 ip地址都是虚假的 虚拟机可以向windows通信但是windows不能向虚拟机通信,如果ip地址不够用可以用Nat模式,因为 ip地址都是虚假的。桥接模式:1每台虚拟机都能上网 2.都能互相通信 3.每台虚拟机都需要配置独立的DNS (DNS就是解析域名成IP地址,就是想要上网必须要配置DNS);桥接模式(用的最多) 2.Nat模式 3. 仅主机模式(Nat模式的功能外,只能在局域网通信,不能访问外网)

2025-05-07 22:43:13 888

原创 理解起来真的爽!关于链表的操作

if(p->next->data==data){}这边我想说的是一定要理解if里面的表达式p->next->data==data是什么意思 意思就是 当前p的下一个p表示的的data会等于你传过来的data,这样我们才能说找到你想要在那个数前面插入新链表;请注意这里有些不同看起来后插入的图和前插入的第二种情况很相似,但是是不一样的因为他们的data不一样,也就是表达的意思是不一样的,一个是data=3的时候前插入,一个是data=2的时候后插入。我在这边放一下适于理解的图,以及便于理解链表的前插入。

2025-05-07 19:57:00 1223

原创 学习Linux的第三天

比如,公司内部有使用 Windows 系统的员工,也有使用 Mac 或 Linux 系统的员工,大家都可以通过 FTP 工具连接到公司的服务器进行文件的上传和下载。可以让你电脑上的windows系统的文件直接拖拉到Linux虚拟机上,反之Linux系统的虚拟机的文件也可以直接拖拉到windows系统上,当然了这个仅限于个人学习的时候,在公司工作研发的时候一般用的是公司的服务器,我们称为真机。共享文件夹会被挂载到。1.ftp 一般是这个 工作上用这个,因为一般工作用的是公司的服务器(真机)

2025-05-06 16:56:56 783

原创 学习Linux的第二天

按gcc a.c -o firstProgram 这个-o是取别名的意思这里是表示将a.c取个名字为 firstProgram。的主机上,且当前的工作目录是该用户的主目录。在 Linux 系统里,每个用户都有自己的主目录,一般来说,普通用户的主目录位于。这是当前所登录的主机名。主机名是用来在网络中标识这台计算机的,每台计算机都可以有一个唯一的主机名。可以输入代码 要退出的时候按esc 再按:(冒号)在输入wq wq是保存退出的意思。这是命令提示符的一部分,它表明当前用户是普通用户。

2025-05-05 20:52:46 767

原创 学习Linux的第一天

发行版的意思就是基于Linux内核的版本,开发出不同的外观,就像vivo 、oppo、华为、三星、魅族都是基于安卓版本开发,安卓版本是一样的,但是每个公司有不同的ui设计,标志性设计(类似于解释发行版的意思)想要放大字体的话 按快捷键ctrl+shift+加号 缩小字体 ctrl+减号。第一个知识输入xrandr后可以调虚拟机的屏幕分辨率(就是屏幕的大小)输入Ctrl +Alt +t 可以快速显示命令提示符。今天学习Linux以下是linux的相关了解。环境搭建:安装vm虚拟机和ubuntu。

2025-05-04 14:33:39 595

原创 学习c语言的第16天

它是由不同类型的数据成员组合而成的自定义数据类型。结构体变量是这个自定义类型的一个实例,它包含了结构体定义里的所有成员。的确不是一种常规的写法,不过它能清晰表达数组类型的本质。关键字定义新类型名,或者在函数参数、返回值等场景里涉及数组类型时,这种抽象表示方式就会体现出它的作用。在 C 语言中,每个数组都有其独特的类型,该类型由元素类型和数组长度共同决定。,这些元素在内存中连续存储。),都不影响通过别名声明变量,所以可以省略结构体名。类型,也就是指向该结构体的指针类型。类型元素的数组”,可以抽象表示成。

2025-05-02 16:28:33 491

原创 学习c语言的第15天

一般情况下,共用体的大小至少是其最大成员变量所占用的字节数,同时还需要是其最大对齐要求的倍数。例如,若共用体中最大的成员变量是 double 类型(通常占 8 字节),且系统要求 8 字节对齐,那么该共用体的大小就是 8 字节。但如果共用体中存在一些特殊的成员类型,如数组或结构体等,情况可能会更复杂一些,需要综合考虑这些成员内部的对齐情况以及整个共用体的对齐要求来确定最终的大小。//取决于你的结构体是怎么定义的。data写不写无所谓的 因为调用的时候是用不上的,后面的mes才是主角。反之则为假(零值)。

2025-05-02 07:51:59 286

原创 学习c语言的第14天

在同一个函数里,若指针发生了偏移,并且没有额外的重置操作,在后续的循环里指针仍然会保持偏移后的位置,不会自动重置。用结构体与函数与数组的结合巩固知识体系(案例还是之前的选票系统)要注意结构体指针取值的符号是。和以前非结构体我们是用。之前的选票系统用指针来操作。结构体与指针的小应用。结构体二级指针的应用。

2025-05-01 23:32:56 216

原创 学习c语言的第13天

由于字符数组名本身就表示数组首元素的地址,所以无需添加。通过点运算符来访问结构体中的成员变量(域)结构体是一个模板一般不赋值,不然就是很菜。这个是用提示输入的方式来完成例题。结构体的小应用(选票系统)p1这个样子的格式感觉。关于结构体的创建和使用。结构体与数组的结合使用。

2025-05-01 11:18:17 459

原创 学习c语言的第12天

它会将读取的字符(不包括换行符)存储到 str 数组中,并在字符串末尾自动添加 '\0'。所以,在这种初始化方式下,str 数组的第一个元素被显式地初始化为 '\0',而其余 127 个元素会自动被初始化为 '\0',使得整个数组初始时表示一个空字符串。这个是字符串,数组 arr 会在最后位置存储一个 '\0',使其成为一个合法的 C 字符串。这是 C 语言中处理字符串的一种约定,以 '\0' 作为字符串的结束标志,方便对字符串进行操作和处理。所指向的字符串,将每个字符的 ASCII 码值累加到。

2025-04-30 14:48:25 841

原创 学习c语言的第11天

如果在使用这块内存存储字符串或其他需要特定初始化值的数据结构之前,不进行初始化操作,就可能导致程序出现意外的行为。这种定义方式创建的 cdata1 是一个字符数组,并且由于它以字符串结束标志 '\0' 结尾,所以它也可以被看作是一个 C 风格字符串。函数的作用是调整之前分配的内存块的大小。在 C 语言中,字符串常量是由双引号括起来的字符序列,并且在内存里以字符数组的形式存储,数组的最后一个元素是字符串结束符。

2025-04-29 18:09:44 881

原创 学习c语言的第十天

这边printf里面的*p[i] 最好写成*(p[i]) 因为虽然[]的优先级高于*但是还是要写成不要被老板骂的形式所以还是最好加();其实只要你们跟着我从第一天开始,一步一步走过来 这些例题真的是easy,看不懂的话就看之前的知识点,都有的,一步一步的引导你。a + 1:是指向一维数组的指针(行指针),指向二维数组 a 的第二行(假设 a 为二维数组名)。*(a + 1):是指向 int 类型的指针(元素指针),指向二维数组 a 第二行的首个元素。int* p:这个变量是int型的指针类型。

2025-04-28 20:19:50 380

原创 学习c语言的第九天

虽然也是解引用操作符,但由于涉及到指针运算和数组名的退化规则,它的作用可能会和直接对指针解引用有所不同。对这个指针解引用后得到第二个子数组,但子数组名在表达式里会退化为指向该子数组首元素的指针,所以。数组指针就是偏移的时候跨越的是一个数组 比如arr+0 arr+1 偏移的是一个数组。地址*(arr+i)+j 值*(*(arr+i)+j);地址 &arr[i][j] 值arr[i][j];地址 arr[i]+j 值*(arr[i]+j);这三个表达的意思是一样的但是都要会面试会用到;

2025-04-27 14:40:42 272

原创 用结构体和函数和数组的案例 新手折磨也要拿下!

程序不好解释太多了,要是我的话我会跟你将程序是怎么设计的,这个没有几千个字,说不清的,不浪费时间了,重要的注释都在代码里面,编程序最重要的是培养程序的设计思想。tips:在同一个函数里,若指针发生了偏移,并且没有额外的重置操作,在后续的循环里指针仍然会保持偏移后的位置,不会自动重置。printf("名字%s 票数%d\n",p->name,p->tickets);printf("请输入第%d个选民的名字\n",i+1);printf("废票数是%d\n",feipiao);//指针重新指向头部。

2025-04-27 14:29:01 526

原创 学习c语言的第八天

所以,若直接传递变量,在函数内部对参数的修改不会影响到函数外部的原始变量。但通过传递指针,函数就能获取变量的内存地址,从而可以直接访问和修改该地址处存储的实际值。在同一操作系统中,无论指针指向何种数据类型,其占用的字节数是相同的,取决于操作系统的位数。由于地址都是一样的所以任何类型都是一样的值,且64位操作系统都是8个字节,32位操作系统都是4个字节。,在表示多字节数据时,从右往左数,右边的部分是低字节,左边的部分是高字节。虽然保存在不同变量类型的地址是相同的,但是空间是不同的,还有增量也是不同的。

2025-04-26 15:12:54 1002

原创 学习c语言的第七天

值得注意的的是二维数组函数参数列表是arr[][4] 就是说列是必须要写正确的,前面行无论写什么都没关系,然后在一维数组里面(int arr[],len)二维数组里面是(int arr[][4],int hang,int lie);一维数组len控制长度,二维数组hang控制行的长度,lie控制列的长度;根据目前的知识无法一次性返回多个值,所以这边巧妙的借助全局变量,求出最大值,最小值平均值;二维数组作为函数参数调用的例子 这边是说定义一个3行4列的二维数组,求其中最大的数。

2025-04-25 23:38:50 236

原创 学习c语言的第六天

所以在这个函数中,数组不是需要求的值,函数的设计目的也不是返回一个与数组相关的计算结果,而是专注于打印数组元素这一操作。1.如果一个函数的主要目的只是执行一些操作,例如打印信息、修改全局变量或者数组的内容等,并不需要产生一个特定的结果返回给调用者时,就可以将函数的返回值类型定义为。对于shuzhu函数,它的主要功能是打印数组里的元素,而不是要计算出一个特定的结果并返回给调用者。实际上就是要理解 数组传递的是地址(是首地址),因此修改的是相同地址中的值,不是改地址,是改地址中的值,

2025-04-25 01:37:29 950

原创 学习c语言的第五天

在终端或控制台中,当操作系统接收到换行符时,它会将输出光标移动到下一行的开头位置,从而实现换行的效果。数组例题:对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9要求按逆序输出。中的一个函数,它的作用是向标准输出设备(通常是显示器)输出一个字符。时,就会在输出内容后进行换行操作,使得后续输出的内容显示在下一行。冒泡排序(从小到大)(重要的是思路不是数据(数据是可变的))把整个数组的大小除以数组中一个元素的大小就可以获得总个数。而且,在这个赋值操作之后,来保存其中一个元素的值,防止数据丢失。

2025-04-24 21:26:03 468

原创 实现c语言的strcpy和strcnpy 拿下面试拷打题!

'\0'&& count>0这个条件之后,执行*des='\0';这个是字符串,数组 arr 会在最后位置存储一个 '\0',使其成为一个合法的 C 字符串。*des = '\0' 会将 \0 放到这个新位置,即最后一个有效字符后面的那个位置。des++ 操作会使指针先移动到最后一个有效字符后面的下一个位置。要知道字符串最后面都是会有一个'\0'为结束符的。

2025-04-23 01:31:14 432

原创 学习c语言的第四天

do while 就是日后再说 永远都会先执行一次do里面的内容,先执行一次do再说..(嘻嘻)特别注意我这样的方法是需要定义一个变量进行将 更大的公约数赋给变量,实现更新公约数的操作。这个是用while输出1++++100的累加和(1—100的累加和)辗转相除法的核心原理基于一个重要的数学定理:对于任意两个整数。for循环的“见怪不怪“ 就是表达式消失不见的情况。for循环(这边有个版本问题涉及到的写法问题)此时,除数就是原来两个数的最大公约数。案例:(for循环嵌套的案例))的最大公约数,也就是。

2025-04-22 12:41:55 407

原创 学习c语言的第三天

这边这个getchar为什么要加呢 是因为当多个scanf输出的时候会讲回车符也加入缓冲区 因此需要。就是表示不设置输出宽度,按照数据实际长度输出,仅控制小数部分的精度。标签使用了表达式,而这在 C 语言中是不被允许的。用交换值的方法(经典案例)要用第三个临时变量。小写转大写(if的相关例题有相应的条件)关于switch case的一些练习。Task:Switch case作业。这个是上面例子的if else形式。非常经典的(if else例子)Task:If else作业。标签必须是整数常量表达式。

2025-04-22 12:28:28 389

原创 学习c语言的第二天

如果后续还有读取字符的操作,这个换行符就可能被当作有效输入读取,从而影响程序的正常逻辑。格式说明符时,就会把字符类型变量以整数形式输出,这是因为字符在计算机内部是以 ASCII 码的形式存储的。printf("你输入的字母对应的小写字母是%c\n",a+32);格式读取字符时,用户输入字符后按下回车键,回车键产生的换行符。会将用户输入的字符对应的 ASCII 码值存储到变量。函数的一个常见用途是吸收输入缓冲区中的换行符。)读取一个字符,它每次调用仅读取一个字符,并且。是 C 语言标准库中的输入函数,

2025-04-20 19:12:36 398

原创 学习c语言的第一天

像 %d 用于输出整数,%f 用于输出浮点数,%s 用于输出字符串等。如果你想在输出结果里包含 % 字符本身,就不能单纯写一个 %,因为单个 % 会被 printf 当作格式控制符的起始,从而引发错误或者产生意料之外的输出。所以,要输出 % 字符,得用两个连续的 %,也就是 %%。如果实际输出的字符数小于 m,则在输出的左侧(默认)填充空格,使其达到 m 个字符的宽度。%:格式说明符的起始标志,在 printf 函数中,% 后面跟着的内容用于指定输出数据的格式。学习c语言第一天笔记。

2025-04-20 00:41:37 351 1

MinGW,即 Minimalist GNU for Windows

MinGW,即 Minimalist GNU for Windows,是一个在 Windows 平台上使用的开源编译器系统。以下是关于它的详细介绍: 功能与特点 GCC 支持:MinGW 包含了 GNU Compiler Collection(GCC),这是一套广泛使用的编译器套件,能够将 C、C++ 等高级编程语言编写的代码编译成可在 Windows 系统上运行的机器码。例如,开发人员可以使用 MinGW 将 C 语言代码编译成 Windows 可执行文件(.exe)。 Windows 特定支持:它提供了一组头文件和库,使得开发人员能够利用 Windows 操作系统的特性和 API 来开发应用程序。比如,通过 MinGW 可以调用 Windows 的图形界面 API 来创建窗口应用程序。 开源与免费:作为开源项目,MinGW 是免费使用的,这使得它在开发者社区中非常受欢迎,尤其是对于那些预算有限或注重开源生态的项目。 轻量级:MinGW 被设计为轻量级的开发环境,它不依赖于庞大的运行时环境或复杂的安装过程,能够快速安装和配置,适合不同规模的项目开发。 应用场景 Windows 应用程序开发:许多开发者使用 MinGW 来开发各种类型的 Windows 应用程序,包括控制台应用程序、图形界面应用程序以及命令行工具等。例如,开发一个简单的文本处理工具或者一个小型的游戏。 开源项目与跨平台开发:在开源项目中,MinGW 经常被用于在 Windows 平台上构建和测试代码,使得项目能够在不同操作系统上保持一致性和可移植性。比如,一些跨平台的开源库,如 OpenCV(用于计算机视觉),可以使用 MinGW 在 Windows 上进行编译和开发。 教育与学习:对于学习 C、C++ 编程的学生和初学者来说,MinGW 是一个很好的选择,因为它提供了一个简单易用的编译环境,便于他们快速上

2025-05-09

空空如也

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

TA关注的人

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