C语言
文章平均质量分 78
东方潮汐
在探索前进的路上
展开
-
C语言产生随机数的方法
c语言产生随机数的方法 在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()转载 2014-10-27 22:39:15 · 861 阅读 · 1 评论 -
C语言生成程序问题
C语言生成程序问题2014-01-13 21:09劳雷欧 | 分类:C/C++ | 浏览745次我用VS2013写好C语言程序调试运行后就在debug文件夹下生成了EXE文件,可以在本机运行。但是这个EXE文件在别的没装过VS2013的电脑上就不能直接运行,说丢失MSVCR120D.dll文件。我重装系统后,没来得及安装VS2013,那些生成好的EXE时也都出现了上述问题。由此,我认为是V转载 2015-03-01 19:43:23 · 563 阅读 · 0 评论 -
最值得阅读学习的 10 个 C 语言开源项目代码
伯乐在线注:『阅读优秀代码是提高开发人员修为的一种捷径』http://t.cn/S4RGEz 。之前@伯乐头条 曾发过一条微博:『C 语言进阶有哪些优秀的代码可以阅读?』http://t.cn/R72EdtY 。今天来看看 平凡之路 推荐的《最值得阅读学习的 10 个 C 语言开源项目代码》。1. WebbenchWebbench是一个在linux下使用的非常简单的网站转载 2015-03-20 12:15:39 · 401 阅读 · 0 评论 -
位运算简介及实用技巧(一):基础篇
什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理):转载 2015-04-09 22:53:34 · 357 阅读 · 0 评论 -
位运算简介及实用技巧(二) 进阶篇(1)
二进制中的1有奇数个还是偶数个我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var i,x,c:longint;begin readln(x); c:=0;转载 2015-04-09 22:58:00 · 314 阅读 · 0 评论 -
位运算简介及实用技巧(三):进阶篇(2)
n皇后问题位运算版 n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,rd:longint);var转载 2015-04-09 22:59:18 · 336 阅读 · 0 评论 -
位运算简介及实用技巧(四):实战篇
下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。 Matrix67原创,转贴请转载 2015-04-09 23:01:50 · 251 阅读 · 0 评论 -
C语言中史上最愚蠢的Bug
本文来自“The most stupid C bug ever”,很有意思,分享给大家。我相信这样的bug,就算你是高手你也会犯的。你来看看作者犯的这个Bug吧。。 首先,作者想用一段程序来创建一个文件,如果有文件名的话,就创建真正的文件,如果没有的话,就调用?tmpfile()?创建临时文件。他这段程序就是HTTP下载的C程序。code==200就是HTTP的返回码。else转载 2015-04-17 12:51:23 · 515 阅读 · 0 评论 -
C语言的谜题
2015-04-01 实验楼本篇文章《C语言的谜题》展示了14个C语言的迷题以及答案,代码应该是足够清楚的,而且我也相信有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?转载 2015-04-17 12:24:20 · 330 阅读 · 0 评论 -
递归与尾递归(C语言)
在计算机科学领域中,递归式通过递归函数来实现的。程序调用自身的编程技巧称为递归( recursion)。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。转载 2015-05-16 23:20:31 · 387 阅读 · 0 评论 -
C语言杂谈:指针与数组 (上)
原文出处: 川山甲 欢迎分享原创到伯乐头条 思维导图 介绍1> 指针定义:指针是保存变量地址的变量。2> 本文重点>> 指针与数组之间的关系>> 操纵指针的规则3> 指针优点>> 表达某个计算的唯一途径>> 代码更高效,更紧凑4> 指针缺点:难以理解,但是用好了,代码会非常清晰。5> 将指针、数组和地址的算转载 2015-05-16 20:29:16 · 611 阅读 · 0 评论 -
C语言杂谈:指针与数组 (下)
原文出处: 川山甲 欢迎分享原创到伯乐头条思维导图 介绍前接上文C 杂谈之 指针与数组 (一),接续往下谈指针和数组。 指针与数组 ——承接上文进行扩展你知道X = Y,在编译运行过程中,是什么样吗? 字符指针与函数1> 字符串是一个以”结尾的字符数组。看一个例子:printf接受的是一个指转载 2015-05-16 20:32:42 · 560 阅读 · 0 评论 -
12个有趣的C语言面试题
本文的12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,而且有趣,看看你能做出几个!1.gets()函数问:请找出下面代码里的问题#include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); print转载 2015-05-19 23:19:05 · 398 阅读 · 0 评论 -
很酷的 C 语言技巧
本文由 伯乐在线 - Michael.X 翻译。未经许可,禁止转载!英文出处:endofunctor。欢迎加入翻译小组。C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。指定的初始化很多人都知道像这样来静态地初始化数组:转载 2015-03-14 22:23:26 · 426 阅读 · 0 评论 -
在Linux下运行C语言程序
市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核、桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)。本教程以Deepin为例来讲述如何编译C程序。GeditGedit是一个简单实用的文本编辑器,拥有漂亮的界面,支持语法高亮,比 Vim 更易上手。本教程将Gedit作为C代码编辑器。Ged转载 2015-02-09 16:43:38 · 4337 阅读 · 0 评论 -
windows8.1安装vc++6.0,正常使用的调整方法(查阅大量资料后亲测有效)
先正常原创 2014-10-28 21:33:54 · 1544 阅读 · 4 评论 -
【知其所以然】语义"陷阱"---数组和指针
数组和指针经常出现于编程语言中、也许上课的时候老师也说过数组和指针有区别、参考书上也应该讲过,你是不是也不曾透彻的理清过?这篇博文主要从内存和编译的角度指出了数组和指针在访问方式上的区别、至于他们在函数调用的区别、以及它们的联系将在下一篇中详细讨论。 为了说的清楚些、会先说一些基础的部分、如果你已经掌握大可跳过What's a Declaration? What's a Defin转载 2014-11-17 22:46:08 · 335 阅读 · 0 评论 -
数组和指针背后——内存角度
上一篇《语义陷阱-数组和指针》聊过数组和指针的区别,主要是对于数组和指针在内存中的访问方式加以区分,这篇博文则从更深层的角度剖析数组和指针的联系如果你也对底层感兴趣、我向这篇文章会对你有所帮助,什么时候数组和指针相同(When an Array Is a Pointer )在实际应用中,他们可以互换的情形要大大多于不能互换的情形。首先再回顾一下声明和定义,(上一篇中有提到这里在深入转载 2014-11-17 22:48:30 · 355 阅读 · 0 评论 -
C语言中的typedef问题
1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。2.转载 2014-12-02 22:02:12 · 367 阅读 · 0 评论 -
解析C语言编程对缓冲区的理解
下面介绍缓冲区的知识。 一、什么是缓冲区 缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。 二、为什么要引入缓冲区 我们为什么要引入缓冲区呢? 比如我们从磁盘里取信息,我们先把读出的数据放转载 2014-12-29 21:46:30 · 557 阅读 · 0 评论 -
c语言详解sizeof
原文地址:http://blog.sina.com.cn/s/blog_5da08c340100bmwu.html一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。 它并不是函数。 sizeof操作符以字节形式给出了其操作数的存储大小。 操作数可以是一个表达式或括在括号内的类型名。 操作数的存储转载 2014-12-29 21:43:39 · 405 阅读 · 0 评论 -
C语言标准库函数qsort那点小事
qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。函数原型:voidqsort ( void* base, size_t num, size_t size,int( * comparator ) ( constvoid*,constvoid* ) );函数一共四个参数,转载 2014-12-29 21:55:34 · 458 阅读 · 0 评论 -
手把手教你如何优化C语言程序
程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。一、程序结构的优化1、程序的书写结构虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊循一定的书写规则,一个书写清晰、明了的程转载 2015-02-06 22:06:15 · 326 阅读 · 0 评论 -
什么是编程语言
学习编程语言之前,首先要搞清楚“编程语言”这个概念。编程语言的目的是使用人类语言去控制计算机,告诉计算机我们要做的事情。人类语言易于理解,容易学习,开发效率高。目前流行的编程语言有C语言、C++、Java、C#、PHP、JavaScript等,每种语言都有自己擅长的方面,例如:C语言是较早开发的一种高级语言,后来的很多语言都是以C语言为蓝本进行设计的;C语言和C++主要用来转载 2015-02-06 22:00:39 · 462 阅读 · 0 评论 -
C语言编码风格
很多人不重视这点,认为无所谓,甚至国内的绝大多数教材也不讨论这个话题,导致学生入公司后仍要进行编码风格的教育。我接触过很多学生,发现他们由于平时缺乏这种意识,养成了不好的习惯,导致很难改正过来。代码没有注释,变量、函数等命名混乱,过两天自己都看不懂自己的代码。下面是一些我见过的比较好的做法,希望读者能有所收获。1、每一个函数都必须有注释,即使函数短到可能只有几行。头部说明需要包含包含的内容转载 2015-02-06 22:23:15 · 599 阅读 · 0 评论 -
优秀C程序员的基本素质--丰富的想象、严谨的思维
程序运行结果看起来对了,但并不意味着程序没有隐藏的问题1) 以下程序是从键盘输入一个数(x,x是一个int型整数),计算y(y=1000x+9)并在屏幕上输出,程序基本上是对的,能输出正确的结果。#include void main(){ int x, y; printf("Please input x:"); scanf("%d", &x); y = 1转载 2015-02-06 22:38:15 · 1150 阅读 · 0 评论 -
C语言函数设计的一般原则和技巧
1、原则上尽量少使用全局变量,因为全局变量的生命周期太长,容易出错,也会长时间占用空间.各个源文件负责本身文件的全局变量,同时提供一对对外函数,方便其它函数使用该函数来访问变量。比如:niSet_ValueName(…);niGet_ValueName(…);不要直接读写全局变量,尤其是在多线程编程时,必须使用这种方式,并且对读写操作加锁。2、参数命名要恰当,顺序要合理。例如编写字转载 2015-02-06 22:39:34 · 390 阅读 · 0 评论 -
如何对C语言设计合适的程序调试方案
让我们来分析并设计对如下程序进行调试的具体方法与手段(实际上,对不同的程序,都需要在分析其执行结果以及其程序编写结构的基础上,来设计相应的对其进行具体调试的方法与手段,宗旨是想方设法逐步缩小“侦察”范围,直到最后找到出错位置)。该程序除main外,还有一个自定义函数f。若已经能确认调用f函数前计算出的res值(或s、d、q或r其中之一的结果值)不正确的话,则可像上一程序那样,在计算出res转载 2015-02-06 22:37:00 · 490 阅读 · 0 评论 -
掌握VS2010调试 -- 入门指南
1 导言在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的)的时间远多于写代码的时间。通常,debug是指发现缺陷并改正的过程。修正缺陷紧随debug之后,或者说二者是相关的。如果代码中存在缺陷,我们首先要识别造成缺陷的根本原因(root cause),这个过程就称作调试(debugging)。找到根本原因后转载 2015-10-05 00:59:52 · 491 阅读 · 0 评论