- 博客(6)
- 收藏
- 关注
原创 C语言中的文件操作详解
文件操作详解文件类型文件缓冲区文件指针文件的打开和关闭 在我们的计算机中,会存有各种各样的文件,有着各种各样的类型。但是在程序设计中,一般涉及到两种文件:程序文件和数据文件。 程序文件指的是在程序运行后生成的一系列文件:比如源文件(后缀为.c),目标文件(windows环境下后缀为.obj),可执行文件(Windows环境下后缀为.exe)。 数据文件是指程序读写时的数据,也就是程序运行过程中存储或者读取的文件。 今天我们所讨论的文件操作指的是关于数据文件的操作。 文件类型 数据文件主要分为文本文件和二进制
2021-03-22 20:44:04 547
原创 摩尔投票法
大家在学数组的阶段中,如果在Leetcode上做过关于数组的题,一定会碰到一道比较经典的数组题,就是在数组中找主要元素。题目具体如下: 这道题如果在不要求时间复杂度的情况下,我们可以很轻易的想到第一种解法,就是用两个指针,一个指向当前元素,另一个指针去遍历剩下的元素,看有没有与当前值相同的元素,记录下来个数。 int majorityElement(int* nums, int numsSize){ int cur = 0; int next = 0; int max = 0; int num =
2021-03-20 22:55:53 131
原创 动态内存管理
动态内存动态内存函数malloc()函数calloc()函数realloc()函数 在学习动态内存之前,我们开辟空间的方式是通过数组或者定义变量的形式来进行的。 int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间 但是这样子开辟空间的大小都是固定的,在程序运行的时候不能改变其大小,但是并不是任何程序使用空间的大小都是已知的,有时候需要的空间大小在运行后才知道,那么这个时候就需要用到动态内存,那么如何使用动态内存来开辟空间呢,听
2021-03-17 19:48:09 164
原创 结构体谜团之结构体的内存对齐
结构体的对齐方式结构体简述结构体内存对齐的三重奏一重奏:确认成员变量的对齐数二重奏:对齐到对应类型对齐数的整数倍的地址处 结构体简述 结构体是C语言中非常重要的一种自定义类型,结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 比如我们想描述一个学生,C语言中自带的类型无法完成这样的定义,那么这个时候我们就需要用到结构体。 可以这样定义: struct Stu { char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20
2021-03-08 19:19:27 364
原创 链表经典题目:判断链表中是否存在环(一)
这是力扣上的一道题,题目是这样的: 存在环的链表和正常的链表不同在于存在环的链表不能遍历,因为没有尾部的存在。 在开始做题的时候,博主想到的方法是每经过一个节点,就将这个节点断开,判断下一个节点所指向的节点是不是指向NULL,如果存在环的话,开始成环的节点就会指向NULL。如下图所示: 但是博主忽略了一点,就是如果链表中没有环的话,尾部也会存在NULL,这样子在倒数第二个节点也会出现上图的情况。 如上图,在节点0的位置,0所指向的节点也指向NULL,但是链表中并没有环。这就陷入了死胡同,说明这种解法是
2021-03-03 21:05:29 165 1
原创 字符串函数(二) + 内存函数详解
strstr函数 strstr函数的作用是在一个字符串中寻找一个字串。 该函数的参数有两个,一个是源字符串,一个是要寻找的子串。 返回值是子串的起始地址,如果没有找到则返回空指针,如果子串长度为0则返回源字符串。 用法如下: 下面是我实现strstr函数的两种方法,可以让大家更好的理解这个函数: 代码1: char* mystrstr(const char* str1, const char* str2) { assert(str1); assert(str2); if (str2 == '\0'
2021-03-02 21:26:46 109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人