- 博客(34)
- 收藏
- 关注
原创 栈和队列相关经典题目
因为要用两个队列来实现,因此Queue pq1;Queue pq2;} MyStack;} MyQueue;首先我们要定义结构体,用数组中实现,我们需要定义动态开辟的数组,要开辟的数组个数,数组的头坐标和尾坐标。头坐标指向头一个数据,尾座标是最后一个数据的下一个。int* a;int k;int head;int tail;int data;}SLNode;int size;
2024-05-18 17:22:08
568
原创 用C语言实现栈和队列
栈和队列是两种结构较为相似的数据结构。栈为后进先出,队列为先进先出。栈中只能在栈顶进行插入和删除数据。队列则是在队头删数据,在队尾入数据。
2024-05-13 23:08:43
168
1
原创 快慢指针相关经典问题--C语言版
以上是一些有关快慢指针的一些问题,十分经典。此外,我们还可以再思考一些问题。回文链表这个问题如果要使用递归要如何做?环形链表的快慢指针,如果快指针一次走三步呢?一次走四步呢?那他们还能否相遇呢?
2024-05-06 12:35:29
719
1
原创 计算结构体的大小--结构体的内存对齐规则
在C语言中,计算数据的大小,就要使用 sizeof 来计算其大小,单位是字节。C语言中的内置类型的数据,其所占字节的大小是固定的。此外,C语言中还有一些自定义的类型,如结构体,枚举等。今天,我们来讨论结构体的大小。我们来看一段代码,该结构体的大小为多少呢?如果按照常规想法,应该是1+4+1=6个字节,不过大胆猜测一番,肯定不会这么简单。我们看到,结果为12,难道其占的大小为2倍?我们可以验证我们可以看到,结构体s1和s2变量类型相同,只是放置位置不同,但其字节数却又发生了变化。
2024-03-21 19:19:00
676
1
原创 C语言库函数之atoi函数的使用和剖析
使用其之前,我们可以了解其作用和功能(使用该函数要引用头文件<stdlib.h>。其大致意思为,atoi函数可以将数字字符串转换为整形数字,其规则为:遍历字符串,找到第一个非空格的位置进行读取,如果第一个字符不为数字字符,就返回0,如果读取到了数字字符,就会向下继续读取至第一次不为数字字符的位置。此外,如果其为空字符串或全为空格的字符串也会返回0。总的来说,有三点:1.会在第一个非空格处进行读取。2.读取的第一个字符不为数字字符,直接返回0。此外,如果其为空字符串或全为空格的字符串也会返回0。
2024-03-20 23:11:50
311
1
原创 浮点数在内存中的存储
因为科学技术法中的E是可以出现负数的,因此在存入内存中时,E的真实值必须加上一个中间数,对于8位的E中间数为127,对于11位的,中间数为1023。有效位M:因1<=M<2,也就是说M为1.xxxxxx的形式,其中xxxxx为小数部分,因为M第一位总为1,因此可以舍去,等读取时,再把第一位加上去,目的是节省1位有效数字。对于32位的单精度浮点数,最高的一位为符号位S,接着8位是指数E,剩下的23位是有效数字M。对于64位的双精度浮点数,最高的一位为S,接着11位是指数E,剩下的52位是有效数字M。
2024-03-19 19:59:50
454
1
原创 字符串函数和内存函数的使用和剖析
在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了 ⼀系列库函数,接下来我们就学习⼀下这些函数中较为常用的函数。
2024-03-18 21:05:07
1030
原创 详解指针~
写了几天终于写完了!指针也是c语言中提供的一种方法,但有时它不一定是最简便的方法,文中提到的一些代码,有些完全可以用数组或其他来代替。*p本质上是一个数组名,其加上一个数组访问下标,便是一个数组,通过数组下标进行访问,便可以得到一个函数的地址,通过传参,得到最终结果。由图可以看出不同类型的指针加一之后跳过的字节个数不同,int类型的跳过四个字节,char类型的跳过1个字节,double类型的跳过8个字节。这是指向的位置是随机的,如果进行解引用并对其赋值,有可能改变了某一位置的信息,这带来的影响是未知的。
2024-03-08 18:58:59
995
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人