• 欢迎访问C语言网www.dotcpp.com 比赛栏每月有奖月赛!举办比赛联系QQ:2045302297
  • 问题反馈、粉丝交流 QQ群327452739 蓝桥杯训练群:113766799 申请群时请备注排名里的昵称
  • C语言研究中心 为您提供有图、有料、解渴的C语言专题! 欢迎讨论!

scanf专题:你可能不知道的scanf的用法

scanf专题:你可能不知道的scanf的用法
上一篇讲解了printf的一些高级用法,不知道大家有没有学到东西,相应的,这篇该为大家介绍对应的输入函数scanf的一些功能了!     scanf作为C语言标准函数库中的格式化输入函数,大家对它常规的使用应该都很明白,   接收控制的格式除了常用的%d,%c,%f等以外, 我们今天重点讲解*在scanf中的用法和scanf的返……继续阅读 »

CTO 7年前 (2017-02-16) 50701浏览 10评论 227个赞

getchar、getch、getche三者的区别

getchar、getch、getche三者的区别
三个单字符接受函数,今天给为大家详细区分!   第一个,getchar函数,是C语言标准库中的函数,在头文件stdio中,可以接受用户输入的一个字符,回车结束,明文显示。声明和示例如下:       注意:第一行是我输入的,第二行是printf输出的!     第二个,getch函数,也是接收键盘……继续阅读 »

CTO 7年前 (2017-02-07) 34047浏览 2评论 207个赞

printf专题:你可能不知道的printf用法

printf专题:你可能不知道的printf用法
今天这篇,想给大家把printf拿出来再详细讲一讲,因为不少同学反映只会用,但一些参数、返回值什么的还不了解,所以今天总结一二,给大家总结和梳理一下,算是抛砖引玉,能给大家打开大门,下面开始。   首先,以下四种printf的用法想必大家都应该很熟悉。   除此以外,各种\n、\t 、\r、\b等转义字符不再讲解,大家可自行查表。 我们……继续阅读 »

CTO 7年前 (2017-02-04) 52523浏览 18评论 451个赞

C语言自定义函数如何返回数组(下)?

C语言自定义函数如何返回数组(下)?
通过上一篇的讲解,相信大家已经明白直接的return数组的问题以及原因了,今天我们将详细为大家讲解在函数中返回数组的常见办法。   此类问题,应用场景往往为了解决函数间相互通信,比如某个函数内处理的完的结果数据需要交接给另一个函数的情况,那么一般来说,总结有以下三种: 直接使用全局变量:这种方法最方便,但此方法打破了函数间的通信及封装的思想,所以……继续阅读 »

CTO 7年前 (2017-01-31) 28128浏览 3评论 98个赞

C语言自定义函数如何返回数组(上)?

C语言自定义函数如何返回数组(上)?
最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下:       直接返回str数组名(注意不需要加&,还有好多同学犯这个错) 但事实上,运行结果并非正常,我们尝试在调用函数中输出,可以看到结果并非是原来内容(当然你的电脑输出可能还……继续阅读 »

CTO 7年前 (2017-01-28) 42090浏览 9评论 172个赞

C语言中的宏陷阱 #define SQU(x) x*x

C语言中的宏陷阱   #define SQU(x) x*x
有同学写过或者想写这样的宏定义吗? 求两个或几个数的乘积:   #define SQU(x) x*x 我们正常使用没有问题:   但如果这样写呢?       哎呀,竟然不是100了,难道SQU(10)和SQU(5+5)不等价吗?5+5不是10吗?   的确,这里SQU(10)和SQU(5+5)的确不等价……继续阅读 »

CTO 7年前 (2017-01-22) 19981浏览 3评论 120个赞

C语言逆向之表达式短路分析及应用

C语言逆向之表达式短路分析及应用
大家在学习C语言过程中,可能会见到过一些这样的题,就是表达式短路,表达式短路主要体现在C语言中逻辑运算符&&和||。今天将对表达式短路的做逆向分析,来深入理解它。   首先利用表达式短路,我们可以写一个很经典的累加求和的函数,代码如下:   功能很简单,就是求1+2+…+99+100的数字和的一个程序,但用递归写了出来,……继续阅读 »

CTO 7年前 (2017-01-12) 10853浏览 1评论 27个赞

C语言逆向之自增(++)运算符前缀和后缀的区别

C语言逆向之自增(++)运算符前缀和后缀的区别
今天我们来逆向分析C语言中++和—运算符前缀和后缀的区别,提到这里,相信有不少同学也早有过疑问,如前缀++表示”先加再用”,后缀++表示”先用再加”,今天经过我们的逆向分析,相信大家就会更加理解这其中的意义!     我们这里以++为例,分别进行逆向分析实验,观察汇编代码,先看一个简单的程序:       ……继续阅读 »

CTO 7年前 (2017-01-06) 16536浏览 0评论 31个赞

char a[]=”dotcpp.com”;char *p=”dotcpp.com”有啥区别?

char a[]=”dotcpp.com”;char *p=”dotcpp.com”有啥区别?
这里首先说明一点:char *p和a[] 不是一回事,详情将后续更新。 那么两者最大的区别是什么呢?答:一个存了,一个没存!   为啥?先说第一个,第一个其实就是一个字符数组的定义连同初始化的过程,只不过长度缺省,这种情况编译器是允许的,其长度为后面初始化字符串的长度+1(因为‘\0’)。这个相信大家学过C语言看过教材的都应该知道。我们可以试图打印……继续阅读 »

CTO 7年前 (2017-01-04) 9356浏览 0评论 19个赞

char *p1,p2;为什么p2不是指针?

char *p1,p2;为什么p2不是指针?
char *p1,p2为啥不对?   相信不少同学在学完指针后尝试定义两个指针会这样写,并且编译没有错误,使用P1也没有问题,但尝试使用P2的时候可能会发现不对劲! 为什么呢,p2可能仅仅是个char类型的变量,并非是一个指针!     为何是这样,相信不少这么定义并且觉得正确的同学会有这样的理解,那就是:char *属于类型,……继续阅读 »

CTO 7年前 (2017-01-02) 8470浏览 0评论 50个赞