首页
学习
活动
专区
工具
TVP
发布

我的C语言

专栏作者
27
文章
2463
阅读量
15
订阅数
寒假提升(6)[杂烩典型题]
这段代码的结果是什么呢? 首先关于char,存储的时候是是一个字节,意味着的是最高只能是2的7次方-1。为什么是7次方呢? 因为char是有符号的类型,符号位占了一个字节,也就还剩下127为最高,最小为-128。 此外,127和-128其实是连在一起的,意思是,对于char或者是别的一些有符号的类型也相当于是这样的,从0开始一直加1,能到127,在加上1就会变成-128,然后再加,最后又到0。 所以,a=101加上27,变成的是相当于-128,存储方式是1000 0000作为补码存储再内存中,符号位是1。但是在和int类型的sum进行计算时会整型提升(可以点进去看看,里面有相关介绍),此时由于最高位置是1,所以高位补1,然后再取反+1。为-128,所以sum+=a为sum=200-128=72。
薛定谔方程难
2024-02-11
910
寒假提升(5)[利用位操作符的算法题]
题目要求让我们把一个数字用二进制表示出来的时候,将他的奇数位置和偶数位置交换,就比方说 num=2(0b10)交换过之后是1(0b01) 这种方式。 这里是题目的链接
薛定谔方程难
2024-02-08
900
C++入门的基础
为什么会出现C++呢?为什么C++的关键字和C语言相对比起来,有着不少的增加? 其实想要搞明白为什么会出现这种状况,首先要明白的是C++是祖师爷用C语言的过程中,饱受C语言中一些限制的诟病,在C语言的基础上增加的一个更牛的系统。
薛定谔方程难
2024-02-05
1200
寒假每日提升(4)[对于二叉树类的简单问题]
在这篇文章中我简单的介绍了二叉树的定义和一些简单的性质,其中最最重要的,其实我觉得应该是那句话,因此,二叉树是由递归定义的,这句话大大的影响着后面我们解题时候的想法。也需要我们很好的认识和理解递归在解题时的运用。
薛定谔方程难
2024-01-24
820
让二叉树无处可逃
树也是属于一种数据结构,它是一种非线性的数据结构,与栈,队列和链表是不同的存在。 由n(n>=0)个有限的结点组成的具有层次关系的集合。至于为什么是树呢?其实按照结构图来看,把一颗二叉树的结构图倒过来就像一颗树了。
薛定谔方程难
2024-01-24
940
寒假每日提升(3)[指针]
勤学如春起之苗,不见其增日有所长。 辍学如磨刀之石,不见其损日有所亏。 —— 陶渊明
薛定谔方程难
2024-01-23
820
寒假每日提升(2)[关于sizeof相关计算]
当我们会想起sizeof是什么的时候,我们本能的应该会想到strlen的函数。而在刚刚开始学习的时候,我总是不知不觉的把两个类似作用的函数搞混,那么为了确定一下两者的具体意思。可以去官网搜一下strlen,sizeof
薛定谔方程难
2024-01-23
1000
寒假每日提升(1)[适合复习使用]
在其中重要的是,&s+1和s+1的区别,相对于*s+1来说,更难理解,对于 *s+1来说的话,由于 *的优先级是高于+的,所以,先是应该解引用第一位的字符,然后得到之后再加上1的值,所以才会在后头显示的是2。而对于s+1应该就是字符数组的第一位加上1,到第二位置。而对于&s+1是跳过整个的字符数组到下一个区域,充分理解,也就是相当于可以将此运用到二维数组的使用传参。
薛定谔方程难
2024-01-23
770
学习C语言链表时必须要清楚明白的知识点
当然了,链表也相当于算是数据结构的一种类型,但是在自己在C语言中编写链表,也不会是感觉上的那么简单,并且尤其是其中的一级指针和二级指针的使用问题,如果不能较好的理解这点的关系和区别,那么不仅仅是在编写层面上的问题也更有着在未来对于用户交互之间的问题。举个例子来说,用户是不可能看到在代码层面我们所写的逻辑和结构,如果只是让一个普通人去使用,那么必然会有教程,那如果搞不清楚逻辑问题和指针结构,你在指导用户使用的时候也必然造成繁琐的问题,让用户也要遭受记住不同指针的麻烦。
薛定谔方程难
2024-01-23
950
关于结构体的问题
这一段,就是定义结构体类型,也就是相当于是,别的类型一样,就比如int,float之类,但是此时只是类型,还没有变量,只有定义了变量才能使结构体类型有存在。也只有创建变量之后,结构体类型才是在内存中创建了空间,在空间中存放age,height,name。 要想怎么创建变量,有两种方法分别是 代码1
薛定谔方程难
2024-01-23
790
数据在内存中的存储——浮点数
常见的浮点数:3.1415926,1E10等,浮点数包含的类型有float,double,long double 浮点数的表示范围在头文件float.h中定义。
薛定谔方程难
2024-01-23
1490
数据在内存中的存储——整数
任意一个整数(当然是不能超过INT_MAX的一个数字),都是以2进制的表示方式存储的,表示方法有三种,分别为原码,反码,补码 而这三种方法都是既有符号位又有数值位的两个部分,符号位都是0来表示“正”,用1来表示“负”,最高的那位被当作是符号位,剩下来的31个bit全是数值位。 正数的三种表示形式都是相同的 而负数三种表示方式不同 原码:直接将数值按照正负数的形式,表示为二进制,就是原码 反码:将原码的符号位不改变,其余的按位取反。 补码:反码+1得到。 当然不管是正数还是负数,整数的存储存放的就是补码。 关于为什么要存放补码存贮,其实真正的原因是因为,使用补码,可以将符号位和数值域统一处理,同时加法和减法也可以统一处理,并且原码和补码的相互转换的处理过程是相同的,不需要额外的硬件电路(符号位不变,取反,+1)
薛定谔方程难
2024-01-23
1210
关于0和\0的区别?!
这应该是我的第一篇文章关于我在写代码的过程中出现的问题,以后的话,这个栏目还是会继续更新的,随着我的代码越写越多,这种文章肯定不会少的,为了能够一眼看出来,这篇文章到底是什么类型的错误,标题名字,就不弄的那么没头没脑的了,就不按照顺序来编标题了。
薛定谔方程难
2024-01-23
870
字符串函数的运用和理解(2)
和之前的对比,能感觉是多出了一个n,那么这个n是什么,有什么作用呢? 通过搜索能找到这下面的解释。
薛定谔方程难
2024-01-23
760
什么?回调函数是什么东西?啊?这里面的函数指针,还有那个指针数组,数组指针又是什么?
回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数 时,被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条 件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。 那我们想要理解到底怎么才算是回调函数,光是看定义肯定是不够用的,我们得结合实际才能有足够深入的了解。
薛定谔方程难
2024-01-23
1040
关于qsort函数
链接: 可以自己搜索,得到的结果会更全面 根据网站,我们可以知道,qsort函数里面,需要用到的数值是这样的。
薛定谔方程难
2024-01-23
910
字符串函数的运用和理解(1)
Appends a copy of the source string to the destination string. The terminating null character in destination is overwritten by the first character of source, and a null-character is included at the end of the new string formed by the concatenation of both in destination.
薛定谔方程难
2024-01-23
1060
易错点,时常没事多看看,牢记!
%d是打印整型 %c是打印字符(’w’) %f是打印小数加上f(3.5f) %s是用来打印字符串 Int-整型,char-字符,short-短整型,long-长整型,float-单精度浮点型,double-双精度浮点型 A~Z 65~90 a~z 97~122 大到小写字母相隔32 字符有char ,[signed]char有符号的char,unsiged char。括号是可以不写的 浮点型是小数点可以浮动,因为0.314*10=3.14等等 浮点型float,double,long double Int-整型,char-字符,short-短整型,long-长整型,float-单精度浮点型,double-双精度浮点型 long double超精度 C语言中 0表示假,非0表示真。 Bit——比特位——1,0 Byte——字节 , 1BYTE=8bit KB , 1kb=1024byte MB , 1mb=1024kb GB TB PB char是signed char还是unsigned char是不确定的,是取决于编译器的,但是在VS上面charsigned char。但是intsigned int,是一定的。 有时候,会有整型提升,那么如何做到呢?那么其实就是两点,要好好记住。1、有符号的整型提升是按照变量的数据类型的符号位来提升的。2、无符号为的整型提升,高位补0。
薛定谔方程难
2024-01-23
1200
关于我遇到的值得注意的错误点
这是我在生活中看到别人犯过的错误,我觉得其实这种错误,如果没有经历过,一定不会发现他的错误。 请看下面的代码:
薛定谔方程难
2024-01-23
900
关于C语言中一些需要的注意点(3)
1、若果说,自己总是会把=和= = 弄错的话,不如把变量放在右侧,就比如说*(if(3== x)和if(x= =3)),如果可以的话,还是建议第一种写法,因为就算是自己写错了,也可以通过系统自己来帮助我们找出错误,如果一不小心写成了if(x=3),在第二种的情况下,是很难找出来的。 2、在写判断的时候,我们最好不要连用操作符之类的,就比如说(i<j<k,i=3,j=4,k=2)*,如果说根据我们的判断,这句话应该是错误的,但是机器不会那么认为,机器是从左到右依次进行,在比较完i和j的大小之后,就会把前面的结果认为是1,然后再去和k进行比较。所以最后的结果却是真确的。为了防止这种情况的发生,我们可以把原来的代码改为**(i<j&&j<k)**. 3、布尔类型的头文件是<stdbool.h>,在用的时候是这样的。
薛定谔方程难
2024-01-23
720
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档