• 好好学习,天天向上~
  • 欢迎欢迎~

 分类:c语言

啤酒3块一瓶,7瓶盖2酒瓶可换一瓶酒,15块最多可以喝几瓶?使用C语言解决

生活中常常遇到一些比较有趣的问题,有些是脑筋急转弯类的“软问题”,依靠清奇的脑回路才能解决。而有些则是正宗的“硬问题”,只有拥有缜密的逻辑思维能力的人才能解决。例如下面这个问题: 啤酒3块钱一瓶,7个瓶盖或者2个空酒瓶可以换一瓶啤酒,小明有15块,最多可以喝几瓶啤酒? 短...

lcc 4个月前 (05-23) 154℃ 0评论 2

C语言陷阱与技巧第12节,重要数据怎么保存?如何判断数据是否损坏?

C语言中的结构体是非常有用的复合数据类型,正是有了结构体,C语言在描述复杂问题时才能够得心应手。事实上,当初 Dennis Ritchie 开发C语言用于替换 B 语言,其中一个主要原因就是 B 语言不支持“结构体”式数据结构。 C语言中的结构体非常有用 例如,利用C语言描述人的...

lcc 5个月前 (04-28) 172℃ 0评论 0

C语言陷阱与技巧第11节,sizeof(数组名)并不等于数组长度,怎样用它计算数组长度呢?

在C语言程序开发中,sizeof() 是一个常用,也是一个非常有用的关键字,程序员常常使用它来获取变量占用内存的字节数。 称 sizeof() 为“关键字”,是因为虽然 sizeof() 使用起来很像一个函数,但是它与函数还是有很大区别的,这一点本专栏之前的章节讨论过。 ...

lcc 5个月前 (04-28) 271℃ 0评论 0

C语言陷阱与技巧第9节,在程序运行异常时,输出错误函数链路径

上一节提到在C语言程序开发中,调用函数时需要根据判断其输出或者处理是否符合预期,才能做下一步的处理,否则很可能会引发灾难性的结果。例如下面程序员小明写的这段C语言代码: double get_val() { ... return val; } int fun1()...

lcc 5个月前 (04-28) 154℃ 0评论 0

C语言陷阱与技巧19节,#define atomic_read(v) ((v)->counter + 0)在宏定义后面加0有什么好处?怎样自定义一个自己的锁?

在阅读 Linux 内核源码时,发现了两个宏,相关的C语言代码如下,请看: #define atomic_read(v) ((v)->counter + 0) #define atomic64_read(v) ((v)->counter + 0) ...

lcc 5个月前 (04-28) 142℃ 0评论 0

C语言陷阱与技巧第18节,函数式宏定义的“缺陷”,没有参数类型检查,产生多次副作用怎么办?

在之前的文章里,我们曾讨论C语言程序开发中 define 宏定义的“陷阱”之一就是可能会产生多次“副作用”,这也是C语言中函数式宏定义与真正函数的主要区别之一。显然,define 宏定义的这种“陷阱”会导致程序存在隐患,而且这种隐患造成的危害不亚于“野指针”。 C语言函数式宏定义...

lcc 5个月前 (04-28) 196℃ 0评论 0

C语言陷阱与技巧第17节,如果有个条件很大可能不发生,怎样写出更高效率的程序

在学习C语言程序开发时,很多初学者常常会有一种“编程也不过如此”的错觉,这种感觉通常出现在刚刚学完C语言语法,且能够独立完成一些课后练习题的时候,初学者的信心会在这一时期达到顶峰。可能会觉得程序无非就是各种 if 条件判断,加上相应的逻辑处理。 程序员编写程序就是为了服务人的,程...

lcc 5个月前 (04-28) 85℃ 0评论 0

C语言陷阱与技巧第15节,错误处理太麻烦,不写行不行?

在C语言程序开发中,调用一个有返回值的函数时,一般要对函数的返回值做判断,以确定函数是否按照预期执行。如果被调用函数没有按照预期执行,最好加上相应的错误处理代码,否则最终编译得到的C语言程序稳定性就不够好,遇到一点点意外,可能就不会正常工作了。 没有判断C语言函数的返回值,会有什...

lcc 5个月前 (04-28) 94℃ 0评论 0

C语言陷阱与技巧第14节,数组操作的一些技巧,怎么只给一部分数组元素赋值?

数组是大多数编程语言中非常重要的语法,在C语言中尤为如此,可以认为C语言中的数组是一种复合数据类型——若干数据类型元素组合而成的集合。 之前的文章讨论过,数据结构决定代码逻辑和算法,换句话说也就是决定可以处理什么样的问题。C语言中的数组特别适合存储大量相同类型的元素,而且数组的各...

lcc 5个月前 (04-28) 100℃ 0评论 0