C语言学习
文章平均质量分 73
喜欢哲学的女孩
人生苦短,何必将就
展开
-
关于malloc和free函数的用法
本文转载于:http://blog.pfan.cn/vfdff/33507.html 个人总结在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文转载 2014-02-06 20:32:18 · 1524 阅读 · 0 评论 -
几个字符串输入函数比较
输入字符串的函数有好多个了,比较一下这几个函数。★scanf函数此函数可以说是一个万能的输入函数,也可以输入字符串。格式:scanf("%s",a);其中a是一个数组。但是在输入字符串的时候有限制:当遇到空格或TAB的时候就会终止输入。★fgetc()函数此函数可以从打开的文件中读取一个字符。#include #include #include int main()原创 2015-02-16 17:14:10 · 817 阅读 · 0 评论 -
关于stdint.h(uint16_t uint32_t)
stdint.h是c99中引进的一个标准C库的头文件. stdint.h中定义了一些整数类型,规则如下(其中N可以为8,16,32,64) intN_t, int_leastN_t, int_fastN_t表示长度为N位的整型数; uintN_t, uint_leastN_t, uint_fastN_t表示长度为N位的无符号整型数 ; stdint.h中的常转载 2014-12-07 12:32:17 · 2419 阅读 · 0 评论 -
【C语言学习】C语言运算符
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .原创 2014-10-23 09:45:07 · 888 阅读 · 0 评论 -
C语言运算符优先级(超详细)
每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右转载 2014-08-26 11:09:32 · 763 阅读 · 0 评论 -
关于伪代码的一些思考
编码是为了解决某种问题(不管是在OJ上A题,还是做项目),在解决问题之前应该先有的是对问题的充分分析(挖掘题目的隐含条件,分析项目的需求),只有对问题有了充分的了解,并且有了清晰的思路之后,编码就成了水到渠成的事。以前在OJ上做题的时候,都是看到题目就去写代码,从来不先去分析题目的各种条件,这种做法是错误的。★什么是伪代码是一种算法描述语言。它自身有很多的规定,其实这很好理解。就像当年秦始原创 2014-08-01 08:37:05 · 1541 阅读 · 0 评论 -
sizeof运算符
sizeof是C语言中的关键词,它nen原创 2014-07-31 15:08:40 · 1188 阅读 · 0 评论 -
【C语言学习】链接
一个工程由许多的文件组成,当工程中的文件编译结束后jiu原创 2014-07-30 17:46:50 · 1143 阅读 · 0 评论 -
【C语言学习】指针再理解(一)
★内存和地址内存的基本单位是字节,那么内存就可以按字节进行编址,就是给组成内存的所有连续的字节安排地址。其中一个最恰当的比喻就是房子与门牌号,假设有20间连续的房子,从最左边(或者左右边)开始分配门牌号1~20,给内存中字节分配的地址就相当于门牌号,字节就相当于房间。字节的容量只能存储一个字符。那么,内存是如何存储比字符更大的数据呢,比如:整型数据、浮点型数据?★更大的内存单元为了存储原创 2014-06-19 23:38:22 · 955 阅读 · 0 评论 -
寻找回文字符串
★什么是回文串★寻找字符串中最长的回文串◇解决思路1、2、◇需要解决的问题1、字符串输入与保存2、字母以外的字符处理3、怎样寻找◇代码设计★总结原创 2015-02-27 11:38:30 · 1714 阅读 · 0 评论 -
CodeBlocks调试功能快捷教程
本文转载于:http://blog.csdn.net/sxhelijian/article/details/15026159转载 2014-07-03 17:39:26 · 1205 阅读 · 0 评论 -
【基础编程】猜数字游戏的提示
★题目实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)输入包括多组数据。每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。猜测序列全0时该组数据结束,n=0时输入结束。样例输入:41 3 5 51 1 2 34 3 3 56 5 5 16 1 3 51原创 2016-10-29 13:33:02 · 5056 阅读 · 1 评论 -
【基础编程】HDOJ2048神、上帝以及老天爷
这个题目没有想出来,最后不得不看了别人的结题报告。知道了这是一个关于错排的题目,有根据别人的思路,推到了一下公式,才开始自己实现代码。反正我一见到排列组合的题目脑袋就会一团浆糊,可能高中时候就没有学好。现在整理一下这个题目的思路:假设前n-1个都已经是错排了,总共有f(n-1)种。那么,把第n个放到这个错排中,会有两种情况:第一:与n的位置交换。假设将第n个元素放在某一位置m,m位置的原创 2016-10-19 11:14:57 · 796 阅读 · 0 评论 -
【基础编程】HDOJ2045不容易系列之(3)—— LELE的RPG难题
学习编程的唯一途径是通过大量的编程,编程,再编程。而在OJ上做题来提高自己的编程能力以及自己的思维能力的方法就是通过自己的思考,分析,编程,试错,再思考,再分析,再试错这样一个不断循环的过程,最后将问题解决,对于那些是在高出自己能力太多的题目就去研究这个题目所涉及的知识点,然后还是要回归到上面的这个过程中。只有通过大量这样的训练,自己的编程能力和思维能力才会得到提升。算法与数据结构是基石,因此只要原创 2016-10-16 10:57:27 · 829 阅读 · 0 评论 -
【基础训练】HDOJ2028 Lowest Common Multiple Plus
求n个数的最小公倍数。方法一:先求最大公约数,然后利用公式求最小公倍数。求最大公约数使用辗转相除法。#include int ls(int a,int b){ int m; if(b == 0) m = a; else { m = ls(b,a%b); } return m;}int m原创 2016-09-29 16:25:30 · 863 阅读 · 0 评论 -
【基础编程】POJ 题目分类 【初级、中级、高级】
POJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初级:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法.转载 2016-10-10 17:09:13 · 567 阅读 · 0 评论 -
【基础训练】HDOJ2041超级楼梯
这是一个水题,但是却花费了我一些功夫来研究,所以将其记录下来。刚开始看到题目的时候,我脑袋是晕的,当我试着将前几级楼梯的不同走法计算了一下,发现这不是斐波拉契数列嘛,把自己包装的这么严实。一想到斐波拉契数列就想到了递归,因此我就写了个递归,提交之后,结果超时。递归需要一层层的将结果计算出来,因此有可能同一结果要计算很多遍这样就会很浪费时间。因此,我就想用一个数组将计算结果保存起来,如果数组里面已经原创 2016-10-10 11:20:03 · 791 阅读 · 0 评论 -
extern和volatile的用法
extern 的用法extern的用法的对象主要是变量和函数。用extern声明外部变量①什么是外部变量外部变量是指在文件或者函数外部定义的全局变量。外部变量仅定义一次并且在所有的函数之外。②在一个文件内使用外部变量作用域:如果在定义变量之前就使用了 外部变量就要用extern进行声明,在声明外部变量时,类型名是可以省略不写的。看一个从网上找的例子:#inc原创 2014-03-01 11:12:19 · 12351 阅读 · 1 评论 -
VC6.0调试篇:watch窗口的技巧
本文转载于:http://blog.csdn.net/gisfarmer/article/details/4062139转载 2014-07-03 17:18:06 · 3128 阅读 · 0 评论 -
指针的应用
指针对于C语言来说是非常重要的★原创 2014-08-02 13:03:54 · 1144 阅读 · 0 评论 -
【C语言学习】存储类型
C语言中的存储类型主要有四种:auto、static、extern、register★auto存储类型默认的存储类型。在C语言中,如果忽略了变量的存储类型,那么编译器就会自动默认为auto型★register存储类型寄存器变量。寄存器位于CPU,它的特点是:容量小、速度快。它一般用来暂存程序中使用频繁的变量、或者一些中间变量等,能提高程序的执行速度。此类别的变量会优先分配寄存器。原创 2014-07-05 00:40:27 · 1818 阅读 · 0 评论 -
C语言经典书籍
基础篇1.《写给大家看的C语言书(第2版)》点击打开链接原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: (美)Greg Perry [作译者介绍] 译者: 谢晓钢 刘艳娟 丛书名: 图灵程序设计丛书 C/C++系列 出版社:人民邮电出版社转载 2014-03-09 18:11:44 · 1508 阅读 · 0 评论 -
浅析C语言中的栈操作
汇编/C语言中的'数据栈'跟数据结构中的'逻辑栈'类似都是遵循先进后出后进先出原则,但是在实际操作过程中的基本单位不同:1.在数据结构中的'逻辑栈'按照使用者自己的需求定义大小及基本单位。例如可以存放10个char型,也可以存放20个结构体等。2.在汇编或C语言本身的'数据栈'中栈大小由编译器指定,遵循FIFO规则的基本单位是栈帧,即每调用一个函数都会有一个新的栈帧加入,而函数返回则以栈帧转载 2014-03-08 10:10:09 · 1206 阅读 · 0 评论 -
typedef和define具体的详细区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。 2)typedef是在编译时处转载 2014-03-11 18:08:40 · 774 阅读 · 0 评论 -
冒泡排序(链表实现)
#include #include #include typedef struct node{ int data; struct node *next; }*BT; void BLine(BT &T,int a[10],BT &T1);//建立链表 void Arrange(BT &T,BT &T1);//对链表排序 int main(){原创 2014-02-13 11:30:16 · 1073 阅读 · 0 评论 -
二叉树的基本操作
#include #include #include typedef struct node{ int data; struct node *lchild; struct node *rchild; }*BiTree;//此处*BiTree的作用与 typedef struct node *BiTree等价 int CreateTree(B原创 2014-02-13 11:43:31 · 843 阅读 · 0 评论 -
课程设计备份
#include#include#include#include#define SIZE 100#define INCREASE 10 struct node{ int data[100]; int length;//当前长度 }L;/////////////////////////////顺序表typedef struct tree{ int data;原创 2014-02-13 11:39:45 · 826 阅读 · 0 评论 -
ATM银行系统
以前做的课程设计做个备份。#include#include#include#includestruct acc{ char name[21]; char pass[7]; char ID[21]; float money; struct acc *next; };struct acc *head,*原创 2014-02-13 11:33:12 · 1077 阅读 · 0 评论 -
C语言中指针变量所占字节大小
在学习过程中知道,一个任何类型的指针变量所占的字节大小都为4个字节。这是为什么呢?内存是由字节组成的,每个字节都有一个编号。指针变量主要是存放相同数据类型的变量的首地址。这里的这个地址其实就是内存的某个字节的编号。而这个编号的确定是与地址总线有关。如果地址总线是32位,则它的寻址范围是0~2^32(0~4G)。那么为一个字节的编址就会由32个0或者1组成。例如第一个字节的编址是32个0,最后一原创 2014-02-05 22:55:16 · 8774 阅读 · 1 评论 -
C语言里的左移和右移运算
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用int i = 1;i = i 也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化,下面转载 2014-03-28 03:41:12 · 1182 阅读 · 0 评论 -
C语言中getchar()函数的理解
许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是int 型下面是getchar()的定义:[html] view plaincopyprint?int getchar () { int re转载 2014-04-18 15:20:41 · 2088 阅读 · 0 评论 -
【C语言学习】封装和模块化思想
刚学习完C后,做的关于C的课程设计是在一个源文件中放了几百行代码,而且各个功能之间都是相互依赖的,这样就会很麻烦。因为当我要修改某个地方的时候,就会牵连着要修改喝多的地方。而在实际的程序设计中,这也是不可取的。因此,模块化和封装的思想就显得很重要了!!!★static变量static变量的一个显著的作用就是可以实现一个模块的封装。static存储类别的特性决定了static声明的全局变原创 2014-07-06 00:19:59 · 2517 阅读 · 2 评论 -
【C语言学习】C语言中的函数
代码中,函数是为了更好的实现模块化的程序设计。那么函数的本质是什么?函数中定义的变量(全局变量、局部变量、静态变量等)又是怎样存储的?为什么全局变量与局部变量的作用域和生命期不相同?只有更加深入的了解函数,才能解答这些问题!★函数的本质函数的本质是一段可执行的机器指令代码,函数名的本质是一个标号,表示函数代码的入口。该标号的值等于内存中存储函数代码的内存空间的首地址。★变量●全局变原创 2014-07-03 11:47:42 · 1525 阅读 · 0 评论 -
【C语言学习】指针再学习(二)之数组的指针
★一维数组 一个整型数据为4个字节。4个字节就是32位,即可以表示2^32个数字 在程序中定义一个数组a[5] = {1,2,3,4,5};那么a[0]的地址就是0x00000000,数组a的地址也是0x00000000。a+1则表示的地址是0x00000004,而不是0x00000001。因为1这个值,根据前面的指针a所指向的类型的长度来调整自己的长度。也就是说如果a是指原创 2014-07-02 19:01:19 · 813 阅读 · 0 评论 -
C中关于一位数组与指针和二维数组与指针的一点总结
(1)在一维数组中,数组名可以做数组的首地址。例如,有数组a[10],其中a和&a[o]都是数组a[10]的首地址。a+i是a[i]的地址即a+i与&a[i]都是a[i]的地址。*(a+i)与a[i]是等价 的。(2)二维数组,就比一维数组复杂的du。原创 2013-07-07 01:03:03 · 1035 阅读 · 0 评论 -
这些年我读过的技术经典图书(附电子版下载地址)
C技术资料1.>作者: 谭浩强这是我推荐的第一本书, 也是我接触的第一本书, 为什么把它放在第一位, 因为我觉得这本书对我的影响很大, 感觉这本书的最大特点是: 内容很全面, 内容深度把握很到位, 而且知识结构组织的也非常合理, 很适合初学者, 学起来也不难. 如果把这本书读好了, 那么你已经扎实的踏入了C的世界, 当然哈,两只脚刚踏入,想要学好C, 还要学转载 2014-04-10 14:28:41 · 1617 阅读 · 1 评论 -
嵌入式程序员应知道的0x10个C语言Tips
******************************************************************************************************003** 嵌入式程序员应知道的0x10个C语言Tips转载 2014-04-20 12:10:30 · 1450 阅读 · 0 评论 -
国外最猛的开源软件站 源码站
开源可以让我们得到开源软件的原代码,对于我们创新提供了更大的帮助,我们可以借鉴和研究其他人的成果,我们可以站在巨人的肩膀之上,我们可以走得更高。一、Sourcegforge 网址:www.sourceforge.net 这是一个专门开源项目公开和分享的一个开源网站,里面有国内外各种语言的开源项目。包括中国的很多开源项目也会在Sourceforge.net发布。SF为开源项目的大本转载 2014-03-24 20:49:15 · 6093 阅读 · 1 评论 -
开源代码网站
http://search.csdn.net/CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。http://snippets.org/简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。http://www.codase.com/index.html它是一个代转载 2014-03-24 20:34:17 · 1138 阅读 · 0 评论 -
socket通信阻塞模式下,设置发送和接受函数超时
今天公司项目上遇到了一个问题,就是用到socket与服务器通信时,接收数据会突然有一次接收不到数据。但是项目代码使用阻塞程序写的,所以程序就一直卡在接收函数不能动。开始为了解决这个问题可以说是费劲周折。先是用了定时器,但是项目代码用的是多进程,要涉及到进程间通信的问题。后面从网上搜到了下面这一段文字,帮助了我的大忙,真是太感谢了。在阻塞状态下,接收和发送函数同样可以设置接受发送超时时间,而只要原创 2017-01-19 17:15:24 · 9002 阅读 · 0 评论