- 博客(35)
- 收藏
- 关注
原创 文件操作(C语言)
当我们想要从硬盘读取数据时,数据会先读到缓冲区,缓冲区满了之后,将数据放入数据区。当我们写完一个c程序,运行结束后,由于数据是在内存中存储的,所以在下一次执行时,上一次的数据不会保存,如果想要让数据持久化保存,可以使用文件。文件类型指针简称文件指针,指针维护的那块内存中(文件信息区),存放了文件的相关信息(文件名、文件状态、文件当前位置等),这些信息保存在结构体中,而这个结构体类型取名为FILE。每一个被打开的文件,都会有一个文件信息区(如图中的f),通过FILE指针(如图中的PF),可以维护这个文件。
2023-12-17 18:46:27 794 1
原创 C语言的自定义类型—结构体
结构体中,每一个成员变量在内存中是如何存储的?其实结构体成员在内存中存储时,遵循着内存对齐的规则。tag为结构体标签,最后的花括号后面的分号不能省略。例如下面的代码,声明了一个Student为标签的结构体类型。第一个操作符是通过结构体变量来访问的,第二个操作符是通过结构体指针来访问,例如。上面的例子我们可以发现,内存对齐会存在空间浪费,那么为什么会存在内存对齐?结构体类型声明好之后,就可以创建结构体变量并且进行初始化了。通过结构体访问操作符,可以访问结构体成员。结构体声明的形式如下。根据内存对齐的规则,
2023-12-02 18:12:17 939 1
原创 整数和浮点数在内存中存储(C语言)
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储。
2023-11-30 23:12:56 895 1
原创 C语言中的字符串函数
src指向的是源字符串,dest指向的是目标字符串,strcpy函数的作用是,把源字符串(src)拷贝到目标字符串(dest)。返回的是dest指向的字符串。前两个参数和strcpy的参数是一样的,参数count表示要拷贝的字符个数,与strcpy不同的是,strncpy可以限制拷贝字符个数。size_t表示返回的是无符号的整数,(字符串长度不可能是负数),string指向的是待求字符串首元素。它的作用是将src指向的字符串(源字符串)追加到dest指向的字符串(目标字符串)中,什么是追加?
2023-11-29 22:36:28 870 1
原创 C语言指针详解
类比到计算机中,计算机CPU在处理数据时,这些数据是在内存中存储的,内存也是被划分为一个个的内存单元,每个单元是一个字节,一个字节有8个比特位,一个比特位可以存储一个二进制的0或者1,和宿舍房间一样,内存中每一个单元也有编号,这个编号就是地址。理解了内存的概念,我们可以知道,创建变量其实就是在内存中开辟了一块空间,将变量的值存放在这个空间,如果想得到这个空间的地址,可以使用&符号。假设a的地址是0xff44,p变量存放的就是a的地址,假设p的地址是0xff0048,pp变量存放的就是p的地址。
2023-11-25 21:57:00 969 3
原创 C语言整型提升
C语言中整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符(char)和短整型(short)操作数在使用之前被转换为普通整型,这种转换称为整型提升。
2023-11-20 22:57:00 44 1
原创 二进制、位操作符、位移操作符
在十进制中,十进制的每一位都有权重,个位的权重是10的0次方,十位的权重是10的1次方,百位的权重是10的2次方…同样的,二进制的每一位也有权重,例如,二进制数1011,从右往左数,第一位的权重是2的0次方,第二位的权重是2的1次方…二进制其实就是十进制的另一种表现形式,十进制满10进1,二进制满2进1,十进制数字用0~9表示,二进制用0、1表示。将十进制数除以二,得到的商接着除以2,每次相除得到的余数写在最右边,直到除不过2为止。反码:将原码的除符号位外,其他位进行按位取反(0变成1,1变成0)
2023-11-12 22:15:15 62
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人