- 博客(7)
- 收藏
- 关注
原创 算法的时间复杂度和空间复杂度
时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。通过阅读代码我们可以得知,count=N^2+2*N+10,代码最终的执行次数count,为一个带有未知数的函数。实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数,从而大致判断出该算法的时间量级是多少即可。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。因此衡量一个算法的好坏,一般 是从时间和空间两个维度来衡量的,即。
2023-03-10 18:05:13 94
原创 指针进阶(下)
函数指针数组,顾名思义,就是一个存放函数指针的数组,可以存放函数的地址。在之前,我们已经创建了函数指针,其实函数指针的创建与函数指针是很相似的,我们现在来创建一个函数指针。 数组名为pf,方括号中数组元素个数为3个,其余内容代表元素类型。介绍过之后,我们便来通过一个简单的计算器程序,来展示函数指针数组的应用场景。首先我们使用简单的函数+switch语句来实现函数功能,例如: 观察以上的代码内容,我们会发现实现一个简单的功能,却花费了大量的代码,不仅运行效率低下,而且后期若需要增删功能会显得十分不便。下面
2023-01-31 15:08:50 160
原创 指针进阶(上)
我们已知一维数组的数组名,为数组首元素地址,那么便可以对其数组名进行解引用,从而获得数组名的地址,即为数组首元素地址,故而第三种传参方式也是正确的。第三种传参方式是将指针数组的数组名作为参数,由于指针数组的各个元素都是指针,所以数组名作为首元素地址,便是第一个指针元素的地址。我们已知二维数组的数组名为第一行元素的地址,将其解引用得到的为指针的指针,而我们需要的是第一行的地址,所以是错误的。对于str1与str2而言,他们存储的是常量字符串,分配到的内存空间是不同的,若比较两个数组的地址,当然是不同的。
2023-01-20 16:00:14 104
原创 调试技巧简介
Bug的起源可以追溯到计算机刚发展的时期。这个说法的创始人为格蕾丝·赫伯(Grace Murray Hopper)。1945年,赫柏对Harvard Mark Ⅱ设置好17000个继电器进行编程后进行运行时,它突然停止了工作。经过排查,他们发现这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,这只飞蛾收到光热吸引飞到了触点上,最终被高电压击死。在报告中,赫柏用胶条贴上飞蛾,并使用“Bug”来表示“一个在电脑程序里的错误”。(英文:Debugging / Debug),又称除错,是发现和减少计算机程序或电子
2023-01-18 15:53:18 319 1
原创 c语言操作符简介
对除法操作符“/”来说,两边的操作数都是整数,执行的是整数除法,如果想计算出小数,除号的两端至少有一个操作数是浮点数对于取模操作符“%”来说,两边的操作数都需要是整数,运算结果为除法之余数。 移位操作符移动的是二进制位,且只能对于整数操作,并且移动位数只能是小于32位的正数。内存中存储的是补码的二进制,所以在进行移位时,移动的是二进制位 位操作符分为“&”按位与、“|”按位或、“^”按位异或,与移位操作符相似,它们的操作数必须是整数,也是对于存在内存中的二进制补码进行计算。
2022-12-13 17:34:08 426 7
原创 初阶指针简介
在此次文章中,我们简单了解了什么是指针,指针的类型,野指针,以及指针的运算。在理解指针中,首先要理解电脑在运行程序时需要依靠内存,进而理解电脑在运行程序时,会根据代码将内存空间划分为一个个内存单元并且进行编号,以便电脑对于特定的内存空间进行操作。由此拓展开的便有指针的类型以及指针的运算,使得我们在使用中能够更加灵活多变。而在使用指针时一定要注意避免使用野指针,并且在使用指针前,可以验证指针的有效性,从而降低报错率。
2022-11-21 08:45:00 255 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人