有同学写过或者想写这样的宏定义吗?
求两个或几个数的乘积: #define SQU(x) x*x
我们正常使用没有问题:
但如果这样写呢?
哎呀,竟然不是100了,难道SQU(10)和SQU(5+5)不等价吗?5+5不是10吗?
的确,这里SQU(10)和SQU(5+5)的确不等价……继续阅读 »
CTO
8年前 (2017-01-22) 20948浏览 3评论
124个赞
好久没给大家看有意思的C语言实现的代码了,今天给大家分享一个C语言实现坦克大战的游戏源码,依旧是纯C语言,点c文件,但是是在TC的环境下,运行效果截图如下:
上下左右控制方向,空格为发射炮弹,还带声音哦!
小编亲自没有问题,大家可以自行上机实验,编译器下载见
C/C++开发和学习人员必备工具下载集合(含助手及破解……继续阅读 »
CTO
8年前 (2017-01-16) 70543浏览 19评论
318个赞
大家在学习C语言过程中,可能会见到过一些这样的题,就是表达式短路,表达式短路主要体现在C语言中逻辑运算符&&和||。今天将对表达式短路的做逆向分析,来深入理解它。
首先利用表达式短路,我们可以写一个很经典的累加求和的函数,代码如下:
功能很简单,就是求1+2+…+99+100的数字和的一个程序,但用递归写了出来,……继续阅读 »
CTO
8年前 (2017-01-12) 11447浏览 1评论
28个赞
在C语言学习过程中,大家或许听到过左值和右值的概念,甚至在调试程序时编译器也会给出” left operand must be l-value ” 即左操作数必须为左值!,今天我们将为大家详细解释这两个词,以及两者的区别!
简单而言,在赋值运算符“=”左边的就是左值,在赋值运算符“=”后边的就是右值,感觉像是废话,但非常好理解。但更多时候,我们……继续阅读 »
CTO
8年前 (2017-01-09) 26709浏览 0评论
81个赞
今天我们来逆向分析C语言中++和—运算符前缀和后缀的区别,提到这里,相信有不少同学也早有过疑问,如前缀++表示”先加再用”,后缀++表示”先用再加”,今天经过我们的逆向分析,相信大家就会更加理解这其中的意义!
我们这里以++为例,分别进行逆向分析实验,观察汇编代码,先看一个简单的程序:
……继续阅读 »
CTO
8年前 (2017-01-06) 17142浏览 0评论
31个赞
这里首先说明一点:char *p和a[] 不是一回事,详情将后续更新。
那么两者最大的区别是什么呢?答:一个存了,一个没存!
为啥?先说第一个,第一个其实就是一个字符数组的定义连同初始化的过程,只不过长度缺省,这种情况编译器是允许的,其长度为后面初始化字符串的长度+1(因为‘\0’)。这个相信大家学过C语言看过教材的都应该知道。我们可以试图打印……继续阅读 »
CTO
8年前 (2017-01-04) 9611浏览 0评论
19个赞
char *p1,p2为啥不对?
相信不少同学在学完指针后尝试定义两个指针会这样写,并且编译没有错误,使用P1也没有问题,但尝试使用P2的时候可能会发现不对劲!
为什么呢,p2可能仅仅是个char类型的变量,并非是一个指针!
为何是这样,相信不少这么定义并且觉得正确的同学会有这样的理解,那就是:char *属于类型,……继续阅读 »
CTO
8年前 (2017-01-02) 8788浏览 0评论
50个赞
本文作者: 黄老师
黄老师:90后,国学易经爱好者,程序员,C语言网创始人
黄老师的心路历程:
“上班时的一天早上在家洗头,不知为何突然间曾经很敬重的一位前辈江民杀毒软件王江民的简历中那句话在我脑海中闪现:‘1996年的一天,45岁的王江民打了一辆黄色面的独自一人来北京中关村创业’ 。想到此时顿然自己泪如泉涌 ,那时正处于迷茫期的……继续阅读 »
CTO
8年前 (2017-01-02) 36299浏览 17评论
928个赞
暂时无法播放,可回源网站播放
学习前提:观看【2017黄老师C语言视频教程】第三十一课并完成相应作业
本节要点:
1.枚举的定义和运用
2.宏定义的使用方法以及优点(单纯的字符替换)
本节作业:
题库练习请点击这里☚(请完成100道题)
……继续阅读 »
CTO
8年前 (2017-01-01) 34934浏览 3评论
254个赞
暂时无法播放,可回源网站播放
【2017黄老师C语言视频教程】第三十一课
学习前提:观看【2017黄老师C语言视频教程】第三十课并完成相应作业
本节要点:
1.结构体的定义以及使用
2.共用体的定义以及使用
本节作业:
题库练习请点击这里☚
……继续阅读 »
CTO
8年前 (2017-01-01) 23045浏览 4评论
141个赞