
C++
文章平均质量分 84
金创想
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
弄懂了这一循环,你才真正明白啥是“生米煮成熟饭”
③不是以单项为单位总结每一项式子的规律,建立起每项的值与第n项的关系,而是以两项为一组,符号一正一负,前后项分母差2。因为最后一项可能是这一组中的前一项,也可能是后一项,需要在每一项后都加入判断,这个判断非常容易遗漏。do就是做嘛,while就是判断嘛,组合起来就是先做后判断,也就是不管三七二十一,先干了再说,用一句生活术语来说,就是先把生米煮成熟饭。所以必须要先运算后判断,而我家娃娃的代码恰恰忽略了这点,掉入本题最大的陷阱。的含义,就像前面说的,它的意思很明确,计算的式子的最后一项要小于。原创 2025-01-24 20:20:02 · 1060 阅读 · 0 评论 -
逻辑运算符的优先级老是忘?只因你没想明白它的逻辑!
大多部编程语言中,逻辑运算符的优先级都会设置成!> &&>||,你有没有想过,这是为什么呢?原创 2025-01-21 18:56:38 · 968 阅读 · 0 评论 -
优先级和结合性:搞定C语言的“多边关系”
你知道下面的表达式在C语言里意味着什么吗?下面就这个问题说道说道。原创 2025-01-15 20:00:43 · 1086 阅读 · 0 评论 -
一次为多个变量赋值的方法
从形式上a=b=c=1是符合这个定义的,但却忽略了一个问题:C语言中的等号是“赋值运算符”,表示将右侧的值赋给左侧的变量,而并不表示等号左右两边相等,它与数学中的等号意义是完全不同的。这其实很好理解,因为赋值就将等号右侧的值赋给左边的变量,就像从右向左传球一样,所以如果有一堆串联的等号,值的源头一定是在最右边,故而也自然从最右边算起。所以,作为编程人员,知道怎么求解此类题目即可,在编写代码时不推荐用这种赋值方式。有的书上称之为“串联赋值”,意思是把多个等号串联起来赋值,这种叫法更合理些。原创 2025-01-14 20:31:11 · 966 阅读 · 0 评论 -
初学者常犯:编程等号与数学等号划等号
因为在C语言中,赋值运算符是把值赋给变量,等号左边的一定要是变量,2=a不符合语法,编译器遇到这种代码时就会报错,从而起到帮助程序员纠错的作用。初学者在if、while、for等语句中表示逻辑判断时,经常将双等号(==)误用为等号(=),导致运行结果出错(注意是运行结果出错,编译时程序是可以正常通过的,所以这种错误不易发现)。在C语言中,等号(=)表示赋值操作,即将右侧的值存放到左侧的变量中。a=a+1这个式子在数学中显然是不成立的,但在C语言中却是成立的,它表示将变量a的值加1,再赋给变量a。原创 2025-01-13 17:00:00 · 2057 阅读 · 0 评论 -
数学函数的参数和返回值探秘
按要求参数不能是整数,返回值也不能是整数。所以按理sqrt(9)是不符合函数要求的,而应写成sqrt(9.0),但实际上,用sqrt(9)也能输出正确结果。这一点其实也很好理解,函数的原型就是sqrt(arg),它的参数归根到底只有arg,至于arg是怎么计算来的,取决于它本身的表达式,和函数本身没有关系(即19/2的值只与19/2这个表达式本身有关,和sqrt函数无关)。注意sqrt((double)(arg))参数中的这两个括号都是非常有必要的,感兴趣的可以用下面的代码测试一下,就可以看出其中的玄机。原创 2025-01-12 19:53:50 · 1121 阅读 · 0 评论 -
释放本我的“绝对值”
这很好理解,起初,神创造天地,在没找到夏娃之前,老金两手空空、只顾一个猛子扎水里抓鱼吃,后来,老金技术练到家,抓到的鱼吃不完,就有了存货,于是自然在脑子里就产生了“有和无”的概念。那就把范围扩大,于是老Y开始刨路,把好好的路刨开,再重新铺好,花费了更大的力气,产生了更大的GDP。在数轴上,它体现的是与代表“无”的基准点0之间的距离“有多少”;在我们的人生中,它体现的是我们的财产“有多少”,花费的力气“有多少”;走的路程不能为负,花费的力气不能为负,产生的GDP不能为负,这些不能为负的东东,就是绝对值。原创 2024-12-03 20:06:55 · 608 阅读 · 0 评论 -
内存泄漏简介:不断消耗资源的吞噬者
你一直占着茅坑一直拉,你占的时间越长别人能用的时间就越少,你拉得越多别人能拉的就越少。内存心里苦啊,就好像古代宫中的三千佳丽,很多连皇上的面都没见过,却又不能交别的朋友,白白地虚耗了青春。这是很简单的道理,就像你占着茅坑,只顾一直拉啊拉,从不去淘宝,最后就会溢出来。遵循编程语言和开发框架的最佳实践,例如使用RAII思想管理资源,用适当的数据结构、算法和编程范式等,可以减少内存泄漏的发生。全局和静态变量的生命周期与程序一致,如果它们持有动态分配的内存,那么这些内存将在程序结束之前一直无法被释放。原创 2024-11-13 16:48:48 · 667 阅读 · 0 评论 -
强制结束输入的方法
如果输入:2 CTRL+Z,结果和前面一样,也能实现强制结束输入的效果,有人就会误认为这里是CTRL+Z起到了发出“输入结束”信号的作用。从表中可以看出,输入“2 x”和“2 CTRL+Z”无论是求和结果还是scanf函数的返回值都是一样的,因此二者是一回事,都是靠输入类型不匹配实现强制结束输入。一文中讲过, Windows的输入结束信号是Ctrl+Z,具体步骤是:输入完毕后按Ctrl+Z键,再按Enter键,即可结束输入。如果scanf要求输入两个数,现在只输入一个数,想要结束输入该怎么办呢?原创 2024-09-02 11:52:50 · 962 阅读 · 0 评论 -
C++的“引用”是条寄生虫
普通的变量是以“传值”的方式传递参数,需要将实参的值复制给形参,在函数中改变的是形参,而不是赋值给形参的实参。这就像我盖了一个和我的房子一模一样房子送给你,这个工程量是很大的,而且你装修是你的房子。引用在内部实现上也是用了指针的,但是用引用会更方便(语法层面,引用不需要用&获取地址,也不需用*访问数据)。指针以“传址”的方式传递参数,传过去的是地址,在函数中是能改变实参的。引用是以“传名”的方式传递参数,传过去的是变量的名字,在函数中也是能改变实参的。这就像我把我的房子的名字告诉你,你一样能找到我的房子。原创 2024-06-07 16:21:46 · 1088 阅读 · 0 评论