![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
Sandm *
C , C++知识分享
展开
-
【C语言】字符串的子串的求法
例题:选b原创 2022-04-27 10:37:25 · 1307 阅读 · 0 评论 -
const的作用
const定义常量(新手在一开始会误认为const只有这一个作用)const还可以修饰函数的参数,返回值,甚至函数的定义体原创 2022-01-16 12:10:56 · 190 阅读 · 0 评论 -
枚举常量的缺点
它的隐含数据类型是整数,其最大值有限,且不能表示浮点数原创 2022-01-16 11:54:43 · 173 阅读 · 0 评论 -
switch语句存在的理由
switch是多分支选择语句,而if语句只有俩个分支可以供选择虽然可以用嵌套的if语句来实现多分支选择,但那样的程序冗长难读。这便是switch语句存在的理由原创 2022-01-16 11:51:29 · 225 阅读 · 0 评论 -
C语言中变量被定义时的位置
在早期比较旧的编译器上,主函数中所有要被用到的变量被定义的位置都需要集中在main( )函数里面的最前面在高版本的编译器中,则不需要过于强调主函数中所有用到的变量都需要集中在前面,它是支持变量在哪里用,就在哪里定义的...原创 2022-01-08 22:36:51 · 661 阅读 · 0 评论 -
switch()函数相关
原创 2021-12-27 18:12:52 · 131 阅读 · 0 评论 -
关于十进制转换成二进制得到的多个二进制数的排序问题
对于十进制的整数是逆序排列对于十进制的小数是顺序排列从上往下是顺序排列,从下往上是逆序排列总结无论是顺序排列还是逆序排列,均是将二进制数从左至右依次排列,只不过按顺序排列,则排在左边第一个的就是按顺序排列拿到的第一个数。如果按逆序排列,排列在最左边第一个的是按逆序排列拿到的第一个数...原创 2021-12-26 18:07:22 · 583 阅读 · 0 评论 -
十进制的小数部分转化为二进制
先单独拿出十进制的小数部分,例如:0.625然后将其乘以2,即得到1.25。然后将整数部分1拿出来注意这里是取已经乘以过2的数,即将0.25取出,然后将整数部分0拿出来再将0.25乘以2,得到0.5。然后将整数部分0拿出来因为0.5乘以2得到1.0,其.0乘以任何数均为0,所以到这里结束。但还要将其最后的整数部分1拿出来例如:...原创 2021-12-26 16:56:45 · 940 阅读 · 0 评论 -
集成电路
首先要明确集成电路不是电路,不要被其名称所误导集成电路是一种微型电子器件或部件(注意是微型)采用一定的工艺,把一个电路中所需要的晶体管,电阻,电容和电感等元件及布线互连在一起,制作在一小块或几小块半导体晶片上,然后封装在一个管壳内,,成为具有所需电路功能的微型结构。其中所有元件在结构上已组成一个整体,即成为一个独立的组件,集成电路在电路中使用字母“IC”表示...原创 2021-12-19 16:35:02 · 146 阅读 · 0 评论 -
函数返回值的类型由什么决定?
C语言规定,函数返回值的类型由函数首部定义的类型决定。函数返回值应与首部定义的类型一致,如若不一致,则自动将返回值强制转换为函数首部定义的类型。没有定义类型时默认为int型。也就是说你的函数是什么类型,返回值就是什么类型。...原创 2021-12-19 15:19:11 · 9602 阅读 · 2 评论 -
二进制,八进制,十六进制,十进制之间的相互转换
二,八,十六进制转换成十进制时:按权展开,然后相加即八进制转换10进制时,每位上的数字要乘以8的n次方2. 二进制转换成八进制:三位二进制数按权展开(每一位上的数字要乘以2的n次方)相加得1位八进制数,若二进制数此时只有整数部分,而没有小数部分,则是从右到左依次数三位进行转换,如果位数不够3位时,要用0来补齐3位3. 八进制转换成二进制:只要将每位八进制数用三位二进制数替换即可4. 二进制转换成十六进制:从右向左若只有整数部分,没有小数部分,则取四位二进制位合成一位十六进制位,若.原创 2021-12-18 16:22:26 · 1163 阅读 · 0 评论 -
八进制和十六进制
计算机界通常使用八进制记数系统和十六进制记数系统。因为8和16都是2的幂,这些系统更加接近计算机的二进制系统每个八进制位对应3个二进制位,是因为8是2的三次幂。同理每个十六进制位对应4个二进制位,是因为16是2的4次幂十六进制位中用字母A~F表示数字10~15,是因为没有单独的数(即0~9这样单独一位的数)来表示10~15,所以用字母A~F来表示按位异或,即结合了按位或的特点,即若有一个为真,则均为真,但是若俩个都为真(1),则为假(0)...原创 2021-12-18 15:48:14 · 2016 阅读 · 0 评论 -
使用return从函数中返回值
函数的返回值可以把信息从被调函数传回主调函数(大多数是main函数)使用return语句的另一个作用是:终止函数并把控制返回给主调函数的下一条语句返回值不仅可以赋给变量,也可以被用作表达式的一部分,例如: answer=2*add(4,5)+34;函数声明的类型即为函数返回值的类型,所以它们要保持相同,而没有返回值的函数应声明为void类型实际得到的返回值相当于把函数中指定的返回值赋给与函数类型相同的变量所得到的值自定义函数中声明多个参数时应该用逗号分隔变量名之间...原创 2021-12-18 15:23:22 · 1802 阅读 · 0 评论 -
C语言中的多组输入
多组输入在oj题目中很常见多组输入不同于输入,输入指的是在输入一组数据后,程序便结束运行。而多组输入指的是在输入一组数据后,程序不会结束,它还会接收另一组数据多组输入的代码实现一般是循环(while)与scanf()函数,EOF的相结合,即while(scanf("%d",&a)!=EOF),其执行部分包括了题目的核心,即每执行一次循环,就会使用一组数据注意判断条件括号的后面不能添加分号...原创 2021-12-16 16:58:49 · 4314 阅读 · 0 评论 -
分号与字符
判断条件的括号外面不能有分号原创 2021-12-16 16:47:23 · 93 阅读 · 0 评论 -
C语言中数组的声明
在主函数里进行数组的声明时,必须通过声明数组告诉编译器数组中内含多少元素和这些元素的类型即要在[ ]中标明元素的个数,而**[ ]中不需要标明元素的个数是在已经初始化的情况下才不用标明元素个数,若只是简单的声明,而不进行初始化的话,则一定要标明元素的个数**对于字符串数组,其[ ]中还要算上字符串的结束标志\0,它在字符串数组中也算作一个元素个数...原创 2021-12-16 16:33:00 · 3032 阅读 · 0 评论 -
C语言中的0和1
在C语言中,0表示假,非0(不只包括1,还包括2,3,5等只要是非零数字即可)表示真eg:原创 2021-12-16 14:15:48 · 6375 阅读 · 0 评论 -
C语言随心记----选择与循环
switch与if else if…else if…属于多项选择语句,本质上不属于循环一般if选择语句会与循环搭配使用,通常是if内嵌于循环体中,此时在循环体中可用coutinue,与break同理,如果switch语句在一个循环中,coutine便可作为switch语句的一部分,这种情况下,就像在其它循环中一样,coutinue让程序跳出循环的剩余部分,包括switch语句的其它部分coutine不能用于switch中,因为**单独出现(switch并不嵌套于循环体)**的..原创 2021-12-15 09:31:16 · 87 阅读 · 0 评论 -
算术逻辑单元(ALU)
可以用布尔逻辑门做出一个简单的ALUALU有2个单元,一个算术单元和一个逻辑单元二进制里,1与true相同,0与false相同ALU中的算术逻辑单元首先由XOR门与AND门来实现二进制数字的进位,即1+1=2=10(二进制中的10)。然后把实现这一功能的逻辑门封装为半加器。如果想处理超过一位加一位的运算,我们需要全加器(全加器有几个输入,即能处理几位的运算,则就称这个全加器为几位全加器)。全加器可由半加器制成。一般全加器的数量在ALU非常多,因为二进制数字进行计算的位数多,每进行..原创 2021-12-14 17:36:25 · 934 阅读 · 0 评论 -
如何用晶体管进行计算
从继电器到真空管再到晶体管,我们可以让电路开闭的非常非常快晶体管只是电控制的开关,有三根线:2根电极和一根控制线(可以把控制线当作输入,把底部的电极当成输出)当计算机使用晶体管时,此时已经摒弃了之前像步进计算器所拥有的马达和齿轮电路的开或闭俩种状态可以代表信息在常规的代数里,变量的值可以是数字,可以进行加减乘除这类的操作,但在布尔代数(专门研究真和假)中,变量的值是真和假,能进行逻辑操作,即为:**或 且 非 **而使用多个晶体管的组合可以简单轻松的完成这三种基..原创 2021-12-14 16:53:06 · 1333 阅读 · 1 评论 -
晶体管
它就像之前提过的继电器和电子管(又叫真空管),它是一个开关,可以用控制线路来控制开或关晶体管有俩个电极,电极之间有一种材料隔开它们,这种材料有时候导电,有时候不导电,这种材料叫半导体控制线连到一个门电极,通过改变门的电极的电荷,我们可以控制半导体材料的导电性,来允许或不允许电流流动晶体管的体积远远小于继电器或真空管...原创 2021-12-14 16:23:37 · 76 阅读 · 0 评论 -
(热)电子管
早期它被用作替代继电器电子管的出现标志着计算机从机电转向电子电子管把俩个电极装在一个气密的玻璃灯泡里,这是世界上第一个真空管其中一个电极可以加热,从而发射出电子,另一个电极会吸引电子,从而形成电流。此时在电极管中我们仍需要带一个能开关电流的东西,从而达到控制的目的。所以科学家在俩个电极之间加入了第三个控制电极向控制电极施加正电荷,它会允许电子流动,但如果施加负电荷,它会阻止电子流动。因此通过控制线路,可以断开或闭合电路真空管容易像灯泡一样被烧坏...原创 2021-12-14 16:16:07 · 213 阅读 · 0 评论 -
继电器
继电器是早期计算机的组成元件它可以作为控制电路可以连到其他电路,比如,马达,而马达让计数齿轮+1完成计算原创 2021-12-14 16:03:30 · 368 阅读 · 0 评论 -
集成电路
与其把多个独立部件用电线连起来,拼装成计算机,不如我们把多个组件包在一起,变成一个新的独立组件,这就是集成电路,简称IC集成电路主要由硅元素制成集成电路可以把简单电路,逻辑门,封装成单独组件,所以IC之间可以组合出无数种设计,通过印刷电路板,可以无需焊接或用一大堆线,它通过蚀刻金属线的方式,把零件连在一起集成电路与印刷电路板的大规模使用可以大幅度减少独立组件和电线,但做到相同的功能光刻可以在硅(制作集成电路的重要材料)上制作出晶体管,电阻,电容等其它电子元件,而且相互连接的..原创 2021-12-14 15:37:11 · 168 阅读 · 0 评论 -
scanf()函数的输入结束标志
scanf()函数有俩种方法确定输入结束无论哪种方法,都从第一个非空白字符作为字符串的开始如果使用%s转换说明,以下一个**空白字符 (空行,空格,制表符或换行符)**作为字符串的结束字符串不包括空白字符...原创 2021-12-14 11:01:03 · 5552 阅读 · 0 评论 -
二进制(带小数)转八进制,十六进制的方法
是要从小数点处往左右俩边取二进制数,一定是从中间往俩边小数点依然存在,其位置不动不足位要以0来补齐原创 2021-12-13 18:06:00 · 1262 阅读 · 0 评论 -
return 0的注意点
return与数字0之间必须要有一个空格该语句后面也要有分号原创 2021-12-12 20:06:28 · 1099 阅读 · 0 评论 -
C语言中的除法运算符( /)
首先要与换行符号( \n)作区分,他们的倾斜方向相反该运算符在printf函数中使用时所对应的占位符是%f,但若要打印一个完整的小数,则除数与被除数,即/的左右俩边均至少有一个是小数部分,否则所得的结果错误eg:错误的做法:...原创 2021-12-12 19:24:57 · 3774 阅读 · 0 评论 -
C语言随心记
循环函数for( )中是分号,而不是逗号数组中的[ ]代指数组有多少个元素,要与数组的各个下标作出区分,二者无直接关系以数组 int arr[ ] 为例,对于它在printf( )函数中的使用,即若要输出数组中的某个元素,则要用%d与其对应的arr[ 下标数]。*arr是数组的地址,同时对于%d所对应的 *arr,同时也是其数组的首元素...原创 2021-12-12 19:00:47 · 409 阅读 · 0 评论 -
自定义函数
一般在自定义函数的代码中printf()函数使用的很少注意自定义函数的return语句,是返回一个什么参数形参已经在自定义函数的标识符旁边的括号里定义过了,无需再次在{ }中定义return语句可以认为是自定义函数的函数值(运行函数后所得的结果,即函数返回了一个什么值)...原创 2021-12-12 18:41:44 · 160 阅读 · 0 评论 -
ASCII码值对照全表
十进制的数字有ASCII码原创 2021-12-12 16:57:35 · 22536 阅读 · 1 评论 -
作用域,局部变量与全局变量的作用域
一般scanf()函数无需有换行符局部变量与全局变量的左用域均以**{ }为界限,无论是main()函数中的{},还是自定义函数中的{},反正只要出现了{ },则局部变量定义在大括号的内部,全局变量定义在大括号的外部(这里暂时先不考虑关键字static)**超过了这个范围,这个变量就会被销毁作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域...原创 2021-12-11 17:11:26 · 123 阅读 · 0 评论 -
函数中的return语句没有输出(打印)功能
return只是返回一个参数,用来传递实参,并没有打印的功能如果需要打印,则需要将返回的参数保存在一个变量中,然后使用printf()函数进行打印原创 2021-12-11 16:51:34 · 2354 阅读 · 0 评论 -
scanf()函数与printf()中多个占位符之间是否要有逗号与双引号
首先明确,如果题目无要求,相邻的占位符之间可以是空格,可以是逗号,也可以什么都没有因为scanf()是输入函数,此时占位符表示输入的内容,所以如果相邻的占位符之间有逗号,则在输入时,要把逗号也要输入。如果有空格,则也要输入空格eg:而对于函数scanf()中的多个占位符,则不需要每个占位符都要有一个双引号,一个双引号即可eg:...原创 2021-12-11 16:30:53 · 1964 阅读 · 0 评论 -
用图来表示字节与位的关系
原创 2021-12-10 21:04:11 · 386 阅读 · 0 评论 -
二进制单位
1位(bit) 1字节(byte)==8位(bit) 1kb(字节)==2^10B 1MB(兆字节)==2^10KB 1GB==2^10MB 1TB==2^10GB原创 2021-12-10 20:43:27 · 609 阅读 · 0 评论 -
什么是数据?
计算机是处理数据的工具数据不光包含数字数据是指代表人,事件,事物和思想的符号。数据可以是姓名,数字,照片中的颜色或音乐作品中的音符不要把数据与信息混淆,数据又计算机等机器使用,而信息被人类使用...原创 2021-12-10 20:35:30 · 427 阅读 · 0 评论 -
区别内存,存储,文件
内存----等待使用的数据存储----数据永久保留,但不需要用于处理文件----是存在于存储介质上的命名数据集合原创 2021-12-10 20:27:15 · 351 阅读 · 0 评论 -
关键字typedef的简单理解
typedef与#define不同,在其受限范围内,typedef比#define更灵活typedef并没有创建任何新的类型,它只是为某个已经存在的类型增加了一个方便使用的标签以 typedef char * arr为例没有typedef关键字,编译器只是把arr识别为一个指向char的指针变量,此时它不能作为实参传递给以指向char指针作为形参的函数,因为它是变量,不是标识符。而有了typedef关键字,编译器则把arr解释成一个类型的标识符(注意这里是标识符,标识符,可以通过标识符访..原创 2021-12-10 09:06:33 · 1899 阅读 · 0 评论 -
变量与标识符
变量的声明为内存提供了一个标识符,因此,可以用标识符去识别数据eg: int num; 则可以使用num去识别数据原创 2021-12-10 08:47:58 · 172 阅读 · 0 评论