自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 的初认识(一)

一 . Java 语言的概念1 . 1 什么是 Java?Java 是一门面向对象的编程语言,是一门极其优秀的程序设计语言Java语言具有简单易用、功能强大两个特征,具体功能性体现在面向对象、分布式、健壮性(也叫鲁棒性)、安全性、平台独立与可移植性、多线程、动态性等等特点。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,让程序员以优雅的思维方式进行复杂的编程(这是百度百科说的昂,其实一点也不“ 优雅 ”,经常想的我抓耳挠腮的)不仅如此,

2025-01-21 14:34:14 946

原创 动态内存管理

序言哈喽啊各位,时隔多日咱们又见面了。又到期末了昂,所以呢时间实在是很紧,除开学校的时间呢,又由于自己还要抽时间看课,所以博客就更新的很缓慢啦,还望诸君见谅。今天得空呢,就来为大家整理一期有关于动态内存管理的博客这应该是我关于C语言正期的最后一期了昂,零零散散的为诸君总结的C语言的知识点也涵盖了绝大部分了,如果我总结的这些知识点能为诸君加深对一些知识点的理解以及解决到大家的一些困惑,能够帮助到大家,我当然是不甚荣幸的。

2024-12-14 19:29:50 833

原创 自定义类型:联合体和枚举

我们创建一个整数 a 并赋值为 1,1 在内存中的存储是十六进制,应该是 01 00 00 00,我们函数中取 a 的地址,取到的地址就应该是这一段的起始位置,由于我们只需要判断第一个字节,若是1,那就为我们的小端字节序存储,是 0 的话就应该是大端字节序存储,所以我们接收后强转为 char* ,只访问第一个字节,再解引用,再判断即可。衬衫要有设计、颜色、尺寸。我们为赋值的部分还是从 0 开始的默认值,有赋值的就是赋的值,若是中间有一个是赋值的,那么下面的变量就在该值的基础上每次递增 1。

2024-12-01 17:31:24 869

原创 自定义类型:结构体(三)

跟我们之前学习的结构体的自引用一样,我们结构体的大小是不固定的,跟里面的成员相关,可能很小,占用几个字节,可能很大,这个时候我们使用传址调用的话,前面在 sizeof 的部分讲到过,下图是网络协议中,IP数据报的格式,我们可以看到其中很多的属性只需要几个 bit 位就能描述,这里我们使用位段,能够实现我们想要的效果,也可以最大程度的节省空间,这样我们的网络传输的数据报大小会相对小很多,对网络数据的通畅有很大的帮助。总结:函数在传参的时候,参数是需要压栈的,会有时间和空间上的系统开销;结构体的位段是什么呢?

2024-11-18 19:08:40 907

原创 自定义类型:结构体(二)

是不是 int —— 4,那么 8 正好是 4 的整合倍,符合结构体对齐原则的第三条,所以最终我们s1 的大小就是 8。s2中,第一个是 char 类型,那么我们直接占用第一个字节位,接下来的变量 b 是 int 类型,应该占 4 个字节,又因为 4 比我们的系统对齐数 8 小,则我们此时的对齐数就是 4 ,那么根据第二条规则,我们这个 int 占用空间的起始位置就应该从 4 的整数倍位置开始,所以我们 int 就应该从 4 的位置开始,接下来就跟 s1 中同理了,最后得出,我们 s2 的大小应该为 8。

2024-11-17 19:44:18 660

原创 自定义类型:结构体(一)

由图可见,我在进行结构体的初始化时,用力两种方法,一种是我们正常的初始化,这个初始化必须是严格按照我们创建结构体成员列表时的顺序一对一进行初始化的;虽然我们两个结构体中的类型和成员一模一样,但是由于是匿名结构体,在系统看来这两个结构体的类型是不相同的,编译器会把上面两个声明当成完全不同的两个类型,所以这种操作是属于非法的。结构体的自引用,听到这个概念,我相信大多数小伙伴都会想起我们的函数递归之类的,没错,结构体的自引用就跟我们之前学过的函数递归是有着异曲同工之妙的。,我们的结构体便是由这三个部分组成。

2024-11-07 21:16:35 765

原创 数据在内存中的储存

二 . 浮点数在内存中的储存今天我们来深入了解一下各项数据在内存中的存储一 . 整数在内存中的存储这个众所的周知昂,咱们之前在讲解操作符的时候提到过一嘴,整数在内存中的存储形式——那就是以二进制的形式储存,记不清也没关系,很简单,咱们今天一起来回顾一下:整数的二进制表现形式有三种:原码、反码、补码。有符号的整数,三种表现形式均分为和两部分,符号位都用 0 来表示 正 ,用 1 来表示 负。而正负数的原、反、补是略有差异的:(1)正负数原、反、补的差异。

2024-10-26 18:14:42 1299

原创 C语言中的内存函数

的,我们虽然是用整型举例,但我们实质还是模拟实现 memcpy 函数,我们不能只用整型,也得遵循 void * 类型的接收返回,我们这里虽然是整型类型,但是朋友们请注意了,我们在赋值时用的是 char * 的强转,为什么不用 int * 强转呢?有的同学坚信实践是检验真理的唯一标准昂,自己去试了一下发现没有问题啊,怎么这样说呢,那是因为我们特殊的编译环境,VS上的库函数 memcpy 也能实现重叠内存的拷贝,但并不是所有编译器上都能实现,可能在其他编译器就跑不动了呢?

2024-10-21 18:57:24 1063

原创 字符函数和字符串函数(三)

所以我们在比较移动的时候不应该直接对 str1、str2 进行移动,而是在一开始就创建两个新的指针变量,用这两个代替 str1、str2 移动,并且还需要再创建一个指针变量,因为我们对比到第一个相同字符的时候需要在这个位置留下一个指针,如果全部匹配成功,它就作为我们的返回值。注意:一般来说,我们函数中创建的一个东西,出函数就会销毁,但是这个strtok函数,会记住我们上一次运行时的起始地址,出函数不会直接销毁,下一次依然可以读取,这就说明我们这个strtok函数中大概率是有。,所以我们这样子去判断。

2024-10-20 21:35:53 972

原创 字符函数和字符串函数(二)

大家在后续自己的测试中可能会想到这样一个问题:我们每次比较返回的结果,大于就是 1 ,小于就是 - 1 ,等于就是 0 ,没有出现过其它数字,跟我们C语言概念定义的不一样,这是为什么呢?提到字符串大小的比较,大家可能第一时间想到的是长短的比较,其实不然,如果是长短的比较那就太片面了昂,长短一样的情景很多,接下来又该如何进行区分呢?,其他的没什么好说的了,跟上面 strcat 的原理如出一辙,如果有看不懂的部分,大家再去上面翻翻看昂,咱也就不过多赘述了。并不是的,通过调试可以看到,我们的。

2024-10-20 20:22:56 968

原创 字符函数和字符串函数(一)

思路分析:我们在自己的 My_strlen 函数中首先设立一个新指针 ptr,将我们的原字符串起始地址赋给我们的ptr,然后让我们的 ptr 去想计数器那样一位一位的移动,直到遇到 ‘ \0 ’ 停下来,然后。如上图,我们给出了一段有大写有小写的字符串,我们需要对这段字符串中的小写字符转化为大写字符,原本是大写的或空格则保留。在我们的C语言中有着这样一系列函数是专用于字符分类的,这里为诸君举例一些,并且注意,这这些函数的使用都需要包含一个相同的。当然是可以的,之前就提到过我们C语言中也有一个霸总——

2024-10-14 19:02:10 613

原创 指针 (八)例题深度解析

有的小伙伴看到二维数组的形式就怕了,不要怕嘛,这些都是纸老虎,经过我们上一道题的解析,再来看这个不也是一样的原理么:c p p [ -1 ] [ -1 ] == *(*(c p p - 1)- 1),我们此时的 c p p 可还是指向的 C + 1 的位置,因为第三次打印不是自加或自减的形式,其运算过程并不会对其本身造成改变,所以先 - 1 指向了 C + 2 的位置,再 - 1 得到 C + 1,然后再解引用找到我们 c 中 N 的地址,再 + 1 跳过一个字节,所以最终打印结果为:EW。

2024-10-09 21:38:48 939

原创 sizeof 和 strlen

这个是我们的老朋友了昂,经常都在使用,它是专门用来计算变量所占内存空间大小的,单位是字节,当然,如果我们的操作对象是类型的话,计算的就是类型所创建的变量所占内存的大小,注意,它与这个变量的本身大小没有任何关系,sizeof 只关注内存空间的大小,不在乎内存中存放的什么数据。(有关于库函数的概念我就不说了昂,都是老生常谈的概念词了)其功能是求字符串长度,只能针对字符串(字符数组)二维数组在内存中的储存实际上是一段连续的空间,并且我们可以将其分段看做是由一个个一维数组组成的。我们再来回顾一下,在一般情况下,

2024-09-28 14:38:17 439

原创 指针 (七)

我们之前讲过的哈,就是说为了使用统一和便利,人们把一些常用的函数直接实现并放在库中,我们需要的时候可以随时调用。只要理解到了是将我们需要调用的函数将其地址作为参数传递给另一个函数,回调函数这一点就显得很简单了,诸君都是聪明人昂,我就不过多赘述了。在我们排序结构体数组之前,我们先来认识一个函数 —— strcmp,我忘了之前讲没讲这个函数了昂,没事儿,现在我们再一起回顾一下嘛。我们之前讲过的哈,就是说为了使用统一和便利,人们把一些常用的函数直接实现并放在库中,我们需要的时候可以随时调用。

2024-09-22 20:56:49 839 1

原创 指针 (六)

诸君可以想一想,我们什么时候需要对类型进行重命名呢?当我们的一个函数指针类型非常冗长、复杂,且我们还需要反复调用时,我们是不是就可以对这个函数指针类型进行一个重命名,将其简化呢?由此可见,我们的函数是的的确确有地址的,并且其性质可以说跟我们的数组一样,函数的地址也就等同于函数名。有图可知,我们经过上面的几个例子,习惯性的将新类型名放在最后,其实我们仔细观察可以发现,,而未来当我们需要时,就可以通过存放的这个地址我们就可以调用该函数。这样子简单,但是很低端,不够高级昂,太繁琐,我们的。

2024-09-17 21:04:07 567

原创 指针 (五)

所以,我们根据数组名是数组首元素地址这个原则,二维数组的数组名就表示第一行的地址,是一维数组的地址,那么在上面的例子当中,第一行一维数组的类型就是 int [ 5 ] ,所以第一行的地址类型就是 int ( * ) [ 5 ] ,那就。当然是有的,我们将二维数组看做是每个元素是一维数组的数组,也就是二维数组的每个元素都是一个一维数组,那么二维数组的首元素就是第一行,是一个一维数组。我们的 p 会先和 * 结合,说明 p 是一个指针变量,然后指针指向的是一个大小为 10 的整形数组。

2024-09-10 20:59:57 307

原创 冒 泡 排 序

这就很浪费我们的时间。针对于这一点,我们可以做出一点小小的优化(以上就是我们初步完成的冒泡排序,大家不难发现,今天咱们单独拎出一小节来聊一聊冒泡排序昂。(理解思路诸君可看下图)

2024-08-21 18:13:58 212

原创 指针 (四)

上图就是传值调用,看似没有问题,但我们的运行结果却出乎了我们的意料,a、b 的值并没有按照我们预想的那样交换,这是为什么呢?众所周知,指针变量那也是变量,是变量就有地址,我们指针本身就是指向一个地址的,那么它本身作为一个变量而言,它的地址又存放在哪里呢?在上方两个调试的图中,我们可以看到,在我们的 Swap1 中,的的确确是将我们的 x、y 的值进行了交换,但是我们也可以看到,,这就证明,a、b 和 x、y 有着本质上的区别,我们改变的是在 Swap1 中的 x、y ,并不是我们想要改变的 a、b(

2024-08-20 21:14:24 837

原创 指针 (三)

如图,这段代码的意义就是:我们先进入到 main 函数当中,创建一个指针 *p ,这个 *p 就是 test 的返回值,然后哦我们进入到 test 函数当中,创建一个变量 a 并给其赋值为 100 ,然后返回 a 的地址,再次回到 main 函数当中,打印 *p ,按理说我们应该是通过 *p 的地址找到 a ,最后打印出100,这看起来好像并没有任何问题,但是请大家注意, test 这里的 a 是一个局部变量,进函数创建,出函数销毁,我们并不能通过 test 的返回值打印出 a。

2024-08-19 22:32:06 1438

原创 指针 (二)

从我们打印出来的地址可以很清楚地看到,char * 类型的指针变量 + 1 就是跳过 1 个字节,- 1 就是退后 4 个字节,而反观 int * 类型的指针变量 + 1 就是跳过 4 个字节,- 1 就是退后 4 个字节。,除非像图2中那样使用强转(强制类型转换),当然我们之前也提到过的是吧,强扭的瓜不甜,我们不到万不得已,应该避免使用强转,养成良好习惯是吧。我们知道,变量变量,就是因为他是可以改变的量,当我们把变量的地址交给一个指针变量,通过这个指针变量我们也可以对该变量进行改动,但是当我们。

2024-08-16 11:23:40 776

原创 指针(一)

比如说我们在宿舍或者家里点外卖,我们肯定会给外卖员一个详细地址包括我们的门牌号是吧,不然外卖员挨个挨个房间去找,效率是不是就非常低了,但当我们给到他一个非常详细的地址,例如一栋二单元202这样子的。),&a 取出来的是 a 所占 4 个字节的地址,虽然整型变量占了 4 个字节,但我们只要知道了第一个字节的地址,就可以顺藤摸瓜访问到 4 个字节的数据。在我们的日常生活中,我们把门牌号叫做地址,在计算机中我们将内存单元的编号也叫地址,在我们的C语言中,将。

2024-07-07 20:46:38 765

原创 结构体(二)

在我们的结构体中,包含一个类型为该结构本身的成员是否可行呢?我们可以看出VS系统已经检测出并自动报错了,这是为什么呢?这样做答案是否定的,因为我们需要考虑一个顺序的问题,今天来继续介绍我们有关结构体的相关知识。另外呢,在我们的结构体自引用的过程中,

2024-06-26 19:43:32 257

原创 结构体 (一)

例如:char 、short 、int 、long 、float 、double 等等,但是呢,仅仅只有这些内置类型是远远不够的,当我们想要描述一名学生,一本书,一件商品时,这时候单一的内置类型就很难办到了。,例如我们想要描述一名学生,我们要在结构体中写出这名学生的姓名、性别,身高、体重、年龄、学号、成绩等,这些值就被称为。上面的两个结构体在声明的时候就省略了结构体的标签(名字)tag。(结构的每一个成员可以是不同类型的变量,甚至是其它结构体)有时候我们得到的不是一个普通格式的结构体,而是一个。

2024-06-24 20:42:38 423

原创 C语言中操作符详解(二)

优先性指的是,如果一个表达式包含多个运算符,我们就应该依照操作符的优先性来判断哪一个运算符优先执行,(大部分运算符都是左结合(从左到右),少数是右结合(从右到左)例如赋值运算符:= )、+ 、- 、++ 、-- 、* 、& 、~ 、sizeof 、(类型)(1)& :按位与(同为 1 才为 1 ,否则为 0 )(4) ~ :按位取反( 0 变 1 ,1 变 0 )(3) ^ :按位异或(不同为 1 ,否则为 0 )OK,今天继续为诸君带来有关C语言中操作符的讲解。(2) | :按位或(有 1 就为 1 )

2024-06-23 15:10:07 673

原创 C语言中操作符详解(一)

以上为诸君罗列了一些在C语言中我们常用的操作符,在此之前,我们已经介绍过了算术操作符、赋值操作符、逻辑操作符、条件操作符和一部分单目操作符。众所周知,在我们的C语言中有着各式各样的操作符,并且在此之前呢,我们已经认识并运用了许许多多的操作符,都是诸君的老朋友了昂。在讲操作符之前呢,我们需要铺垫一下,所以我们先来认识一下C语言中的原码、反码、补码。,在二进制序列中,最高位的 1 位是被当做符号位,剩余的都是数值位。众所周知,计算机用的都是二进制运算法,而在我们的计算机系统中,,得到的32位数就是该数的原码。

2024-06-21 22:21:45 925

原创 函数递归

当我们求第 n 个斐波那契数的时候,它是不适合用递归的方式来求解的,这个时候就有小伙伴要真诚地发出疑问了:这是为什么呢?如图,我们要通过递归计算第50个斐波那契数,这是一个倒序的运算过程,我们先要知道第49位的数和第48位数,我们要知道这两位数我们又得先知道第48,47,47,46位,以此类推......运用了迭代的方式,没有了冗余的计算,咱们的运算效率就高得多昂,即使是50也是秒出答案。在我们的C语言中,“ 递归 ”是我们相当重要的一环,简而言之,斐波那契数列是什么呢?

2024-06-17 14:55:34 621

原创 Visual Studio 的调试

大家调试一个程序,我们首先是要承认出现了问题,然后我们通过一些手段去定位到问题,可以是逐过程的调试,也可以是隔离和屏蔽代码的方式,当我们找到问题的所在,再确定了问题产生的原因,我们就可以去修复代码了。除此之外,在我们的调试的窗口中还有:自动窗口,局部变量,反汇编、寄存器等窗口,我这里就不一 一为大家赘述, 诸君感兴趣的话可以自行去搜集影视资料学习。:可以在程序的任意位置设置断点,打上断点就可以使得程序执行到想要的位置暂停执执行,接下来我们就可以使用F10,F11这些快捷键,观察代码的执行细节。

2024-05-26 18:02:34 1208

原创 函数 (三)

现阶段我们还处于一个学习的阶段,还是初期,我们写的代码都很简单,简洁。若是以后我们出身社会了,工作了,一般在企业中我们当码农的时候,那时候需要我们写的代码就比较繁杂了。这个么,当然也是可以滴,咱们兵来将挡,水来土掩,前辈们早已为我们想好了解决方案,那就是——存储在静态区的变量和全局变量是一样的,生命周期就和程序的生命周期一样了,只有程序结束,变量才销毁,内存才回收。如图:我将声明单独放在头文件中,将函数的实现放在一个源文件中,将函数的调用放在一个源文件中,诸如此类,相信这点诸君不难理解。

2024-05-21 09:43:55 1277

原创 函数 (二)

中华文字博大精深昂,一个词肯定是由它代表的意义命名的,所以从我们“ 形式参数 ”这个字面意思不难理解,这个参数,仅仅只是一个形式而已,其实质就是:当我们定义了一个函数,但我们却不调用它时,这个形参只是一个形式而已,看得见,摸不着,不是真实存在的。我相信,绝大部分的小伙伴是没有做对的昂,这不怪大家,这是为什么呢?因此,我们返回一个“ 2 ”,再打印“ 2 ”,然后又因为 “ 2 ”是“ 1 ”个字符,又会返回一个“ 1 ”,再打印“ 1 ”,最终答案“ 4321 ”就是这么来的。

2024-05-18 10:02:38 1097

原创 函数 (一)

这是啥意思呢,就是我们要想使用一种库函数,就得从编译器的标准库中去调用,因此,我们要写出该库函数的头文件。如图,它的定义,声明,用法,参数,返回值,及其头文件都一目了然,非常的方便,唯一的缺点可能就是英文页面了,诸君使用的时候,有需要的自行翻译一下昂。在之前也粗略地给大家提到过,这个名字仅仅是给我们程序员看的,所以为了我们代码的可读性,最好取名与我们函数作用相关的英文。,反正我就是这么理解的,我觉得没啥毛病昂,当然,个人理解,出错了可千万别报我名字昂。在各种编译器的标准库中,为我们提供了一系列的库函数,

2024-05-16 18:05:21 1140

原创 C语言 杨辉三角 的打印

所以,经过再三思索啊,我们不难发现,我们可以。那么这个时候就有小伙伴要问了,这看着挺唬人的,分开步骤来也就稀松平常嘛,有啥好稀奇的,哎,你看,你又急。,在做题理解的过程中,我觉得还是十分有趣的,特别是在捋清思绪的那一瞬间醍醐灌顶的感觉,还是非常有成就感的,所以趁着今天,就给诸君分享分享。,之前就讲过了昂,这个函数自己可以随便定义的,帮助我们程序员自己理解代码的,所以诸君想取什么名字就写什么,随意随意昂,然后再。,我就是这样子推敲通的,我比较笨昂,推算了老半天,诸君都是聪明人,我相信要不了几遍就能轻松搞定。

2024-05-14 09:36:18 1563

原创 二维数组 和 变长数组

诸君都是聪明人,大家在脑袋里面推演一下就能相同了,当我们拿到一串数字,虽然我们不知道它有几行,但我们知道了“ 列 ”数,我们自然是可以大致的将二维数组的表格罗列出来;初始化这个概念,跟诸君都是老朋友了昂,我们每当介绍到一个变量的时候,都会讲到其初始化,所以,二维数组也不例外,二维数组的初始化格式跟一维数组相差无几,只是略有差异而已。在上一期的内容中,为诸君讲解到了一维数组,在一维数组的基础上,C语言中还有着多维数组,其中,嘛,地址一打印出来,一瞧,这不比看干巴巴的文字有用,上图!

2024-05-12 09:29:50 1356

原创 一维数组 和 关键字 sizeof

下标可以理解为计算机式的IP地址,计算机通过这个下标就能找到并且访问读取这个下标所对应的元素(这一概念还望诸君一定药要重视理解,在我们后续学习指针的时候会做更深入的研究)数组的类型跟我们上面提到的数组中元素的类型不是一个概念哦,诸君一定要将这两个概念分清,千万不要将两者混淆,这一区分概念,在我们后面在指针板块学习中对指针的理解至关重要。,是不是想到printf函数,这就不完全对咯,我们一个数组可能储存了多个元素,我们单靠一个printf函数是不能完成对整个数组的输出的,因此,我们还需。

2024-05-09 10:18:06 938

原创 猜数字游戏

出现问题了,诸君莫慌,毕竟C语言系统已经问世这么多年了是吧,我们所遇到的问题前辈们自然也会遇到,所以自然也就有着与之对应的解决方法。如图,当我们在这里调用 rand 函数,第一次,我们会觉得这些数就是随机数,因为这些数字看起来非常之混乱,好像就是随机数,其实不然,当我们多运行几次就会发现,我们怎么让种子活过来、动起来呢?言归正传昂,这一期咱们主要是利用我们学过的知识,如:函数,循环,嵌套循环,i f 语句等等来综合起来实现一个。,由此可观之,若我们想要生成不同的真正的随机数,我们就必须让种子也是变化的。

2024-05-06 22:58:38 1561

原创 寻找自己的25号底片

这么的年轻,这么有能力,大好的前途,这么明媚鲜活的生命,就这样结束在冰冷的河水里。在我们成长过程中,对绝大多数人来说,感情当然是不可避免的,对绝大部分人来说,感情挫折也是不可避免的,我们得正确看待这种事情,不要迷失本心,不要一味付出,想想自己的爸妈,在家长眼中,每个人都是那么的宝贝,何必为了不在乎自己的陌生人浪费真心呢,一通诚心付出,到头来为自己换来一身的伤,小王子中说过一段话,“ 想要和别人制造羁绊,就要承受掉眼泪的风险,我们不怕掉眼泪,但要值得 ”,愿诸君有用于追爱的勇气,更有接受掉眼泪的勇气。

2024-05-03 23:08:48 744

原创 循环的嵌套及goto语句

咱们今天不是要放五一了么,周一周二上两天课,周三开始放,快乐的时光总是很短暂滴,这个假期转瞬即逝,就仿佛有人在我们的假期上设置了 goto 语句了似的,看似昂,有着五一假期这么几个字,但实际一放假,直接 goto 到假期 over ,开始上学,而且等你回来,还有更恐怖的调休等着你,2.关于 goto 语句,我的建议是,能不使用咱们尽量不使用,因为这个语句它反骨确实是比较多,不太好控制,我们使用的不当,它就会在我们的函数内部乱转,打乱程序的执行流程,所以我们尽量少使用它。在上一节中,我们了解了C语言中的。

2024-04-30 11:37:37 709

原创 C语言中的三大循环

列如 1234 ,我们先将它 %10,就可以得到个位数4,再对它进行 /10,得到123,再将123%10得到十位的3,以此类推,我们就可以得到这个四位数的每一位。这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优一些。do-while 的执行方式较为特别,while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环,而。循环这一板块总结的内容较多,而且,

2024-04-28 22:45:28 2093

原创 switch语句

在 switch 语句中,它的 case 与 default 和 i f 语句中的 else i f 与 else 就略有差别了,有的人可能刻板地认为, default 只能放在最后,其实不然,由图可得,当我们输入不同的数,就会在switch中去执行相应的分支,如果没有这项case,那么就会执行default分支。,他俩的使用方法是一毛一样的,诸君都是聪明人,相信你们都能get到,所以关于default这点我就不过多赘述了)语句的时候,这时候要不就不做处理,要不就得在。语句也是具有分支效果的,只有在。

2024-04-25 16:50:12 1206

原创 关系操作符,条件操作符与逻辑操作符

这就不像我们数学中的那样了,比如:a < b < c ,这样子虽然系统并不会报错,但是在代码运行的时候,往往并不会向我们预想的结果去发展,这是因为在C语言中,关系运算符是从左到右依次运算,所以对于这个式子,系统就会识别为:(a < b )<c ,上面提到过,关系表达式返回值是 0 或 1 ,所以这里按我们输入的就是 a 与 b 比较后真假的返回值 0 或1 与 c 作比较。,言简意赅嘛,就是并且的意思,两侧的表达式都为真,则为真,否则为假(2.之前就多次提到过,在C语言中,0表示假,非0表示真,

2024-04-23 20:12:40 1178

原创 i f 语句

我们之前也提到过,在C语言中,0为假,非0 为真,由此可见,我们表达式的结果为0的时候,系统就会判定为假,就进不去 i f 语句,因此语句不执行,同理可得,表达式的结果为非0 ,系统就会判定为真,则表达式执行。当我们在使用 i f else 语句时,经常会遇到多个 i f 和 else ,这个时候我们的代码格式就显得相当重要,一旦格式不对,我们的语句就会出现配对紊乱,导致输出不了我们想到的结果。,有助于我们理解代码,脑子里有清晰的逻辑,所以大家以后再自己写代码的时候要一定要注意格式,在前面我们有提到过,

2024-04-22 12:23:11 843

空空如也

空空如也

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

TA关注的人

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