自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言:文件操作

我们的程序需要从外部设备中获取数据,也需要将数据输出到各种设备中,而不同的设备输入输出操作不尽相同,这就需要要求程序员掌握很多的操作做方法,为了简便程序员的工作,我们定义了流,也就是说,程序员只需要懂得C程序与流之间的操作方法,输入输出数据,流就可以做了。ptr:要将二进制文本中的数据输入到的数组中,arr的类型根据程序员自己设定。每当打开⼀个⽂件的时候,系统会根据⽂件的情况⾃动创建⼀个FILE结构的变量,并填充其中的信。数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存的⽂件中,我们会看不懂。

2026-01-27 20:28:47 1140

原创 动态内存管理

静态内存分配在栈区(内存小)实现,而动态内存分配是在堆区(内存大)实现的。二、 动态内存开辟这时候我们应用到动态内存开辟的函数,在使用这些函数时,应加头文件#include <stdlib.h>2.1 malloc用来动态开辟内存,开辟一段连续可用的空间,并返回这段空间的起始地址。说明:malloc括号中的参数指的是申请开辟的字节数。如果开辟成功,代码演示:在开辟5个整形的内存后,打印数组可以发现这里值为随机值,则需要我们来赋值。

2026-01-22 21:45:09 852

原创 联合体+枚举

c[7]成员大小为14(7个short类型的数据),而short类型本身字节数为2,系统默认对齐数为8,对齐数为2。c[5]的成员大小为5(5个char类型的数据),而本身char类型字节大小为1,系统默认对齐数为8,对齐数为1。联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小。联合体的大小至少是最大成员的大小,但不一定恰好是最大成员的大小。int类型的字节大小为4,系统默认对齐数为8,对齐数为4。int类型的字节大小为4,系统默认对齐数为8,对齐数为4。

2026-01-22 17:11:20 1215

原创 C语言:结构体

这两个结构体虽然没有没有结构体名称,但是编译器仍会认为这两个结构体是完全不同、不可兼容的两个结构体,这样的结构体就叫做匿名结构体。是一种用户自定义的复合数据类型(有些书上也叫作:聚合数据类型),可以储存不同类型的变量。因为不知道结构体的大小,一个结构体内包含着同一类型的结构体,则该结构体的大小将是无穷大。可以发现,即使两个结构体成员相同,但是成员顺序不同,也会导致结构体的大小不同。不能定义当前结构体的变量,只能定义当前结构体的指针。结构体传参时,应选择传结构体的地址,这样会减少空间。五、 结构体的自引用。

2026-01-20 20:20:18 486

原创 C语言内存函数

memcpy是一个一个字节进行拷贝的,所以,假设数组中有10个int类型数据,那么就需要复制40个字节,才能将数组中全部元素拷贝过来。比较指定的两块内存块的内容,比较从ptr1和ptr2指针指向的位置开始,向后的num 个字节。3.如果source与destination中的内存重叠,那么结果是未定义的(即结果是不确定的)。但是,在输出的时候,int用%d的形式输出,但是void不知道用什么形式输出,这就需要强制转换类型,1.完成内存块拷贝,不关注内存中存放的数据是什么。

2026-01-20 14:17:37 949

原创 C语言字节序:大小端

在计算机内存中或在数字通信链路中,由多个字节组成的数据的字节排列顺序。简单来说,就是当一个数据大于等于一个字节时(例如,一个int类型通常是4个字节),如何在内存地址中排列这些字节的问题。我们只需要看在起始位置的数值是高数据还是低数据,若是低数据,那么是小端字节序;反之,为大端字节序。同时可以知道起始地址从14开始,一直到17,所以从左到右,依次地址增高。0x44这个数据就是低位字节内容,0x11这个数据就是高位字节内容。注意:这节内容强调的是字节序,且是以字节为单位的。三、 大小端字节序的优势。

2026-01-18 22:27:05 328

原创 字符函数与字符串函数的使用与实现

这个错误码一般传递的是errno这个变量的值,在C语言有一个全局的变量叫:errno,当库函数的调用发生错误的时候,就会讲本次错误的错误码放在errno这个变量中,使用这个全局变量需要包含一个头文件errno.h。通过errnum参数来表示错误码,来表示对应的错误信息,简单来说,就是每个数字都有自己的含义,例如:521表示"我爱你"的意思.有了字符转换函数,我们就可以不用上面的代码,直接用函数就可以了,提高了效率。C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。

2026-01-14 12:50:27 928

原创 指针的高阶

sizeof(数组名),当sizeof中单独放数组名时,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。1.3 &数组名。

2026-01-09 14:33:51 887

原创 C语言指针进阶

当在test*()返回n的地址后,n的内容已经放到了垃圾站,是否销毁未知,而主函数中的*p指向n的地址里的内容,所以内容可能会不一样,要看销毁数据的快慢。在比较两字符串的长度时:(尽量不要通过两长度的差值判断,因为strlen的返回值类型也是无符号整型。2.一个程序向内存申请了哪些空间,通过指针也就只能访问哪些空间,不能超出范围访问,超出了就是越界访问。NULL是C语言中定义的一个标识符常量,值是0,0也是地址,这个地址是无法使用的,读写该地址会报错。n因为有了const的修饰,所以n成为了不可修改的量。

2026-01-04 14:35:46 360

原创 指针的初阶

指针初阶

2025-12-31 13:30:20 219

空空如也

空空如也

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

TA关注的人

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