C语言
文章平均质量分 55
Echo_Anna
这个作者很懒,什么都没留下…
展开
-
C语言文件操作的相关(一)
C语言中对文件的操作,是很重要的,今天我首先对对文件进行操作的函数进行整理学习1. fread:原型:size_t fread(void * buffer,size_t size,size_t count,FILE *stream)参数: buffer:接收数据的内存地址size:要读取的每个数据项的字节数count:要读取的数据项的个数stream:输入流返回值:原创 2016-09-20 19:59:40 · 531 阅读 · 0 评论 -
google哈希面试题
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。(用哈希表解题) 分析:这道题是2006年google的一道笔试题。友情提醒:ASCII码使用指定的8位二进制数组合来表示256种可能的字符。解:由于字符(char)是一个长度为8的数据类型,因此总共有可能256 种可能。于是我们创建一个长度为256的数组,每个字母根据其ASCI转载 2017-01-31 15:51:06 · 510 阅读 · 0 评论 -
细说new与malloc的10点区别
前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题其实回答得不怎么好,转载 2017-02-06 19:09:04 · 316 阅读 · 0 评论 -
服务器与客户端的模型之select的多路转接
在使用TCP协议进行客户端和服务器通信的时候可以利用select的I/O多路转接,实现服务器仅仅在检查到有客户在等待连接的时候接受连接,否则就继续做其他事情,即在accept之前放一个监听者,这样可以在循环服务器和并发式服务器的基础上有效地利用CPU。我先是参读了其他人的博客总结,出处:http://blog.csdn.net/skp127/article/details/52042393,内原创 2016-12-08 22:23:58 · 876 阅读 · 0 评论 -
C中字符串的几种定义方法及说明
出处:http://hanxuedog.iteye.com/blog/1299186在C中定义字符串有下列几种形式:字符串常量,char数组,char指针1.字符串常量即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为一个字符串存储在内存中。如:printf("%s","hello"); //"hello"如果字符串文字中间没有间隔或间隔的转载 2016-12-06 22:36:26 · 37275 阅读 · 0 评论 -
不用数组输出蛇形矩阵
在之前我用数组输出过蛇形矩阵,今天在看网页时发现了也可以不用数组和vector也可以实现输出。出处:http://ayeye.blog.sohu.com/300658293.html#include "stdafx.h"#include #include using namespace std;#define MIN(a,b) ( (a)<(b) ? (a):(b))int转载 2016-12-03 22:17:55 · 1083 阅读 · 0 评论 -
C语言知识点之关键字const
const是C语言里的一个关键字,限定所修饰的变量可以被访问,不允许被改变。可以联系地记忆为readonly。它在一定程度上提高了程序的安全性和可靠性。定义:const修饰的数据类型是常类型,常类型的变量或对象是不能被更改的。目的:初始目的是为了取代预编译指令,消除它的缺点,同时继承它的优点。主要作用:可以定义const常量,具有不可变性。原创 2016-12-01 18:54:35 · 445 阅读 · 0 评论 -
二维数组蛇形和Z形矩阵输出
1、蛇形矩阵输出 思路:就顺时针的矩阵为例,由矩阵外至内圈的数值是逐渐加1的,所以主要是找出值循环增加的规律,跟设定的圈数round有关,而round的取值范围为0 <= round <= n / 2,首先定义圈数从0开始,→的下标x是恒定的,从0开始,但是下标y是从round至n - round的,接着向下↓,下标y保持n - round 不变,下标x从round + 1增加到n -原创 2016-11-30 21:23:43 · 7766 阅读 · 0 评论 -
C语言程序学习之俄罗斯方块
我最先接触的游戏当中就有俄罗斯方块,今天我就百度学习了一下它的思路和源代码:一.思路1. 设定小方块的大小和游戏区的坐标每个俄罗斯方块都是有4个小方块构成的,所以我们要先设定好每个小方块的固定大小,还要确定游戏区的起始坐标(左上角坐标);2. 建立游戏区根据自己设定的坐标建立一个20行10列的游戏区。每行每列交叉处构成的方格即为一个方块的大小。设定好方格大小后,我们就可转载 2016-11-10 23:38:55 · 2592 阅读 · 0 评论 -
堆与栈的比较分析
平时都堆栈,堆栈地称呼“堆”和“栈”两个概念,还以为它们是同一个概念的,实际上是两个概念,之前我有对数据存放空间进行过基本了解,现在是针对堆和栈,进行比较分析。堆和栈都是一种数据结构,都可以数据项按序排序,都只能在一端对数据项进行插入与删除。堆: 1、堆是先进先出; 2、堆一般是由程序员分配的,生命周期也完全由使用者控制,如果程序员不释放,程序结束时可能由OS回收; 3原创 2016-10-18 22:03:38 · 359 阅读 · 0 评论 -
C语言参数传递
函数在调用时把一些表达式作为参数传递给函数。函数定义中的参数是形式参数,函数的调用者提供给函数的是实际参数。在函数调用之前,实际参数的值将被复制到这些形参中。C语言在参数调用时,实参和形参之间的数据都是单向的“值传递”方式。C语言要求函数的实参有确定的值,在函数调用时给形参分配相应的内存单元,同时实参的“值”赋(复制)给形参,实现数据从实参到形参的传递。因为是复制,所以在操作形参过程中不会影响原创 2016-10-01 23:33:36 · 989 阅读 · 0 评论 -
内存管理的划分及内存分配方式
内存可以划分为六个部分:1)未初始化的全局变量(.bss段) 用来存放那些没有初始化和初始化为0的全局变量,bss类型的全局变量只占用运行时的内存空间,而不占用文件空间。在整个程序的运行周期内,bss数据是一直是存在的。大多数操作系统在加载程序时,会把所有的bss全局变量请0.为了保证程序的可移植性,手动把这些变量初始化为0,使其有一个确定的初始值。2)初始化的全局变量(.data原创 2016-10-15 20:56:35 · 635 阅读 · 0 评论 -
如何编写有多个返回值的C语言函数
C语言函数的返回值是通过函数中的return语句来实现的,但是每调用一次该函数,return语句只能返回一个值,所以当我们在编写C语言代码时,想返回多个返回值,直接用return语句是无法实现的。1)利用全局变量:全局变量的作用域是从定义变量开始到程序结束,所以对于编写多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量当函数被调用时,全局变量被更改,再把更改后的全局变量应用原创 2016-09-29 12:20:07 · 6714 阅读 · 0 评论 -
matlab程序及C语言实现一维多元离散信源熵
最近在学习中,需要用到用MATLAB编写方程来实现一维多元离散信源熵的计算,下面是相应的程序和改进程序:format shortp = input('p = ') %input any discrete one-dimensional probability distributionif sum(p) ~= 1,error('p is error,sum is not 1') %c原创 2016-09-25 14:42:10 · 5411 阅读 · 2 评论 -
一步一步写算法(之hash表)
出处:http://blog.csdn.net/feixiaoxing/article/details/6885657hash表,有时候也被称为散列表。个人认为,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。转载 2017-02-01 23:43:06 · 373 阅读 · 0 评论