自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 指针,指针数组,数组指针(上)

就是说我们并没有传递x,y本身过去(我们将x,y本生叫做实参,实际参数,就是主函数中的x,y),而是复制了一份x,y作为形参(这里的形参就是exchange函数中的x,y)传递过去,所以我们在exchange函数中的操作都是对形参进行的(exchange函数中的x,y),而不是对实参(主函数中的x,y)进行的,那么如果我们想要在函数中对实参操作,那就需要用到我们的指针。当我们使用函数希望对传递的参数进行修改时,我们其实会发现,我们在函数中对传递的参数进行修改的一些操作是行不通的。

2025-03-08 00:49:19 771

原创 函数指针(下)

我们先来看一下qsort函数的参数void* base 这个参数是一个地址, size_t nmemb 表示我们要比较的数据的数量, size_t size 表示一个数据的大小, 最后一个函数指针参数表示比较函数,因为哦我们qsort函数可以比较任何类型的数据, 所以这里也就需要我们提供比较函数。这里我们也可以在思考一下, 因为qsort函数可以比较任何数据, 所以我们传递的地址就不能有int*, char*这种地址来接受, 所以void* 表示是。

2025-02-16 17:06:21 184 1

原创 函数指针(上)

函数指针是指向函数的指针变量。它存储了函数的地址,可以通过函数指针调用函数,实现对函数的间接调用。函数指针的定义与普通指针类似,使用星号(*)来声明一个指向函数的指针变量。函数指针的类型由它所指向的函数的返回值类型和参数类型决定。这个是标准定义,我们不需要知道,首先我们可以做个类比,数组名表示的是数组首元素地址,那单独的函数名表示函数所在的地址,数组可以数组名+[ ]进行访问,也就是地址+[ ],那么函数也可以通过函数的地址+( )进行访问。

2025-01-21 22:44:51 267

原创 函数递归

当我们使用上述代码去计算第五十个斐波那契数的时候,我们就会发现电脑并不能计算出结果,这是因为每次递归都要不断进行拆分,把F(n)拆成F(n-1)+F(n-2),再把F(n-1)拆成F(n-2)+F(n-3),所以这个计算量是十分庞大的,因此递归虽然会节省代码量,但是对内存的占用是很大的,循环虽然代码量多,但是执行时间会很快,这也就是我们需要权衡的东西。,即递归何时结束的规则。首先斐波那契数列前两项为1,从第三项开始就会等于前两项的和,1,1,2,3,5,...它指的是函数在执行过程中调用自身的现象。

2024-11-01 16:35:41 309

原创 二分查找

二分查找(折半查找)效率高,时间复杂度低,但是仅能用于有序数组。

2024-10-20 19:05:46 360 1

原创 do while 循环

do while语句的语法结构如下do循环语句;while(条件判断);从这个语法结构中我们不难看出,do while循环至少会循环一次,因为代码是按照从上至下的顺序运行的,现在我们可以尝试一下用do while 循环来打印1~10同其他循环一样,当有多句循环语句是,我们需要用大括号括起来,我们需要记住的是,当至少循环一次,这就是do while 循环与其它循环不一样的地方。

2024-10-15 23:13:16 510

原创 for循环

上面两段代码都是用来打印1~10的,可以看出while循环在代码不复杂的情况下与for循环差别不大,但是如果我们代码的逻辑很复杂,需要声明很多变量,那么此时我们去使用while循环就会导致变量初始话与判断条件力的很远,如果出现错误很难去调试,所以此时for循环的优势就体现出来了,for循环中变量初始化,条件判断与调整部分都是在一起的,方便我们进行调试,当然也不是说while不能用,看自己的习惯吧。for循环中的break与while循环中的break作用是一样的,用于永久终止循环。

2024-10-14 23:03:46 202

原创 getchar()

那么现在我们来看看这段代码,实际上其作用就是打印我们输入的字符,想让其脱离循环,就需要让getchar()读取错误,这时候我们只需要输入Ctrl+Z就可以终止循环(因为ctrl+Z没有对应的ascll码值,getchar()读取不了,就会返回-1),不过这里一点小情况就是如果在ctrl+Z之前还有字符,那么此时的Ctrl+Z是无效的,只有当我们单独输入Ctrl+Z时才能终止这个循环,原因就是计算机实际上会检测我们的输入缓冲区,如果输入缓冲区内有字符,那就不会检测Ctrl+Z,因此其也就没有用了。

2024-10-12 15:30:24 170

原创 switch语句

当我们运行这段代码时,输入1~7的数字,便会发现结果与我们想要的不一样,例如我们输入四,运行后我们可以发现运行结果为星期四,星期五,星期六,星期天,原因就是因为当我们输入的值为四的时候,case4实际上就是入口,但此时并没有出口,所以会一直运行,此时我们便需要之前提及的转向语句之一的break。此时break就相当于出口,当我们输入四的时候,case4相当于入口,执行代码printf("星期四")后,从break离开。其中语句项是一些case语句,形式如下。case 整型常量表达式;

2024-09-30 22:59:25 232

原创 分支语句

c语言中有五种语句1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句分支与循环语句属于控制语句,控制代码的运行C语言中有九种控制语句if switch(分支)dowhile while for(循环)break goto continue return (转向)

2024-09-28 23:45:31 322

原创 初识指针

对于32位电脑,有32根地址线,每根地址线可以发出脉冲(1/0),对此每个内存单位就可以被编号,例如0000 0000 0000 0000 0000 0000 0000 0001,0000 0000 0000 0000 0000 0000 0000 0010,对此32位电脑便可以编号2的32次方个内存单元,一个内存单元为一字节,所1以对应4GB,64位电脑有8GB或16GB。对于局部变量,其生命周期在其所在大括号内,一旦运行完成,其便会被销毁,下次运行便会重新创建,地址也会发生变化,因此称其为指针变量。

2024-09-27 22:34:34 168

原创 初识C语言

tip:运用的编程软件是vs2022。3.1确定主函数(mian函数)5.double 双精度浮点数。4.float 单精度浮点数。2.short 短整型。3.long 长整型。

2024-08-01 12:43:11 241 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除