![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 92
xxxteb
这个作者很懒,什么都没留下…
展开
-
数据结构之顺序表
线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。我知道仍然有不足的地方,希望大家多多包涵,也希望大家可以在评论区指出。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。顺序表的本质就是数组(一块连续的物理空间)。原创 2023-08-25 10:50:55 · 243 阅读 · 7 评论 -
数据结构之复杂度
🚀 这里计算的递归的空间复杂度,那可数不了开辟的变量的个数。因为空间复杂度计算的就是额外开辟的空间,而我们开辟的栈帧就是选用递归算法而额外开辟的空间。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数(但也不完全是,比如递归怎么算空间复杂度)。🚀上图中调用的堆栈有:Fib(5)、Fib(4)、Fib(3)、Fib(2)(和Fib(1)调用的是同一块栈帧),一共开辟的5个栈帧。🚀答:当然不是,每个人的电脑又不是一摸一样的,配置不同,程序运行也是有快慢之分的。原创 2023-08-22 17:41:58 · 88 阅读 · 7 评论 -
C语言符号之最终章
🚀如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = q*d + r 且0 ≤ r < d。其中,q被称为商,r 被称为余数。//对应代码int main()int a = 10;int d = 3;//结果是1//因为:a=10,d=3,q=3,r=1 0<=r<d(3)//所以:a = q*d+r -> 10=3*3+1return 0;🤡但是,这不能解决全部。//C语言中是-3,很好理解。原创 2023-08-16 18:30:44 · 119 阅读 · 7 评论 -
C语言符号之初章
你直接换行的话,当别人看你代码时,他会产生疑惑:你是写错了,还是刻意这样。所以你加上\,就是告诉他:我这里就是嫌代码长,需要换行方便阅读。🍂无论任何位运算符,目标都是要计算机进行计算的,而计算机中只有CPU具有运算能力(先这样简单理解),但计算的数据,而寄存器本身,随着计算机位数的不同,寄存器的位数也不同。👉功能为打印双引号。📡对于||短路,从左向右看,只要有一个结果为真,那么后面也不用看了!对于&&短路,从左向右看,只要有一个结果不为真,后面就不用看了!c)在VS中的结果为1,但在Linux中结果为4。原创 2023-08-15 17:00:38 · 210 阅读 · 18 评论 -
可变参数列表
** _INTSIZEOF(n)的意思:计算一个最小数字x,满足 x>=n && x%4==0,其实就是一种4字节对齐的方式,x是4的倍数:4,8,12,16…((n+sizeof(int)-1)/sizeof(int))[最小几倍] * sizeof(int)[单位大小] -> ((n+4-1)/4)*4。***如果n能整除4,那么m就是(n+4-1)/4->(n+3)/4, +3的值无意义,会因取整自动消除,等价于 n/4。既然是4的最小整数倍取整,那么本质是:x=4 * m,m是具体几倍。原创 2023-08-13 16:51:04 · 211 阅读 · 11 评论 -
如何理解指针?
1. 指针是内存中一个最小单元的编号,也就是地址2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量说白了,指针就是地址,地址又是数据,那么数据可以被保存在变量当中吗?答:当然可以,所以指针变量和指针不同。下面我会重点谈论他们之间的关系定义一个变量,本质是在内存中根据类型来进行开辟空间。指针变量就是存放地址的变量,任何指针变量的大小都是4个字节(32位机器)原创 2023-08-01 16:52:04 · 191 阅读 · 18 评论 -
浮点数存储规则
1.M的取值范围:[1,2),IEEE 754规定,在计算机内部保存M时,默认这个数的第一位总是1,因此可以被舍去。2️⃣-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。显然结果是:9.000000,将浮点数存入,再用浮点数的方式打印。答:大小端存储方案,本质数据和空间按照字节为单位的一种映射关系。这是小端存储,接下来我将谈一谈这个大小端存储规则。3️⃣M表示有效数字,大于等于1,小于2。2.E是无符号整数,为防止E是负数。5.E为全1:(以32位下平台为例)E为全0,在内存中就是。原创 2023-07-26 17:03:10 · 143 阅读 · 1 评论 -
函数栈帧的创建与销毁(初级)
栈帧又叫过程活动记录。C语言中,栈帧就是一个函数执行的环境。函数的每次调用,都有它自己独立的栈帧。栈帧中维持着函数调用所需要的各种信息,包括函数的参数,局部变量,函数执行完成后下一步要执行的指令地址、寄存器信息等。原创 2023-06-15 17:29:26 · 314 阅读 · 2 评论 -
scanf()函数的小秘密
以上仅供参考,我们使用scanf()函数时,还是正常点,不要搞得那么花里胡哨的。scanf(“%d”,&a) 或 scanf(“%d %d”,&a,&b),这样正常使用就行。原创 2023-06-11 19:47:40 · 486 阅读 · 0 评论