![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
dingkaich
小菜鸟学习中
展开
-
性能调优
开发http服务器优化性能摘要:关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从转载 2018-01-28 16:50:28 · 207 阅读 · 0 评论 -
C和指针 七
其实 C和指针 系列都是以前看《C和指针》这本书的时候,自己做的笔记,现在把它传到网上来。还有最后一篇原创 2014-10-22 22:03:07 · 453 阅读 · 0 评论 -
C和指针 五
1. int array[10]int *ap=array+2;ap[0]: 对等表达式 array[2] , * (ap +(0)) ap[-1]:使用偏移量-1 得到它的前一个元素,也就是array[1]原创 2014-10-21 22:36:13 · 393 阅读 · 0 评论 -
C和指针 三
1. 左移 : 右端补0右移: 算术 : 补最高位逻辑:左端补0标准说明无符号值执行的所有移位操作都是逻辑移位。但对于有符号值,到底是采用逻辑移位还是算术移位取决于编译器。#includevoid main (){ unsigned int a=0xff0; int b=0xff0; a=a>>4; b=b>>4; printf("%x %x",a,b);}2.原创 2014-10-21 22:09:58 · 411 阅读 · 0 评论 -
C和指针 二
/*1. printf()返回实际打印的字符数,包含转移字符,如\n等2. break , continue只对最内层的循环起作用,无法使用break 和 continue 语句影响外层循环的执行。3. scanf 成功读入返回1 失败读入返回0 如果遇到错误或遇到 EOF , return EOF (-1)4. switch 语句中,continue 语句没有任何效果。原创 2014-10-21 21:42:38 · 336 阅读 · 0 评论 -
排序方法总结(1)冒泡排序 选择排序
转自 http://blog.csdn.net/liuzuyi200/article/details/8623957排序方法是一种基本的、重要的算法,排序的方法有很多,现把一些基本排序方法的算法和c代码列出如下,供大家思考,借鉴,进步。在进行排序之前首先要做的一件事就是选择排序的准则,即(1)从大到下排列或(2)从小到大排列,在进行排序时就是基于这种准则,这样做的目的是为了避免转载 2014-07-31 14:27:09 · 342 阅读 · 0 评论 -
C语言深度解剖读书笔记(7.国嵌答疑问题)
转自 http://blog.csdn.net/mbh_1991/article/details/10644935本节知识点:1.可以利用这个宏 #define OFFSET(type,number) (int)(&(((type*)0)->number)) 求出结构体中成员的偏移量2.对于assert的使用是:可以这样[cpp] vie转载 2014-07-31 14:25:15 · 288 阅读 · 0 评论 -
C语言深度解剖读书笔记(6.函数的核心)
转自 http://blog.csdn.net/mbh_1991/article/details/10549725于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧。本节知识点:1.函数中的顺序点:f(k,k++); 这样的问题大多跟编译器有关,不要去刻意追求。 这里给下顺序点的定义:顺序点是执行过程中修改变量值的最后时转载 2014-07-31 14:21:45 · 373 阅读 · 0 评论 -
C语言深度解剖读书笔记(5.内存管理的艺术)
转自 http://blog.csdn.net/mbh_1991/article/details/10531795转载 2014-07-31 14:22:54 · 460 阅读 · 0 评论 -
C语言深度解剖读书笔记(4.指针的故事)
转自 http://blog.csdn.net/mbh_1991/article/details/10382771转载 2014-07-31 14:19:27 · 313 阅读 · 0 评论 -
C语言深度解剖读书笔记(3.结构体中内存对齐问题)
转自很多人都觉得内存对齐这个问题很难,很不好算,总算错,其实我想说只要你画一画就没那么难了。好了,进入正题。本节知识点:1.结构体为什么要内存对齐(也叫字节对齐):其实我们都知道,结构体只是一些数据的集合,它本身什么都没有。我们所谓的结构体地址,其实就是结构体第一个元素的地址。这样,如果结构体各个元素之间不存在内存对齐问题,他们都挨着排放的。对于32位机,32位转载 2014-07-31 14:20:12 · 370 阅读 · 0 评论 -
寻找矩阵 鞍点
/*字符串常用函数1、 strlen(char const *string)2. strcpy(char *dst, char const *src )3, strcat(char *dst, char const *src)4, strcmp(char const *s1 , char const *s2)5, strncpy(char * dst, char c原创 2014-10-16 09:39:06 · 603 阅读 · 0 评论 -
二叉树遍历
/*字符串常用函数1、 strlen(char const *string)2. strcpy(char *dst, char const *src )3, strcat(char *dst, char const *src)4, strcmp(char const *s1 , char const *s2)5, strncpy(char * dst, char const原创 2014-10-16 09:36:17 · 343 阅读 · 0 评论 -
汉诺塔问题 x->z
/*汉诺塔问题 x->z*/#includevoid move (int i, char x , char y){printf("%d : %c -> %c\n",i,x,y);}void hanoi(int n, char x , char y , char z){ if(n==1) move(n,x,z); else { hanoi(n-1,x,z,y);原创 2014-10-16 09:38:17 · 403 阅读 · 0 评论 -
C和指针 四
1. C语言很特别哈, 在K&R中,形式参数的类型以单独的列表进行声明,并出现在原创 2014-10-21 22:30:26 · 396 阅读 · 0 评论 -
C和指针 一
/*字符常量:1. 用单引号包围起来的单个字符 ,2. 转义字符3. 三字母词枚举类型 enum Jar{A,B,C,D};enum Jar a,b,c,d; 其输出永远是整型常量。*/#includeenum Jar{A,B,C,D};void main(){ char * message ; message="dingkaich"; enum Jar a;原创 2014-10-21 19:06:19 · 369 阅读 · 0 评论 -
算法导论--插入排序
/*今天无聊看看算法导论,一来就讲插入排序对于数组 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]设置 0 -> j-1 为有序数组, j 为key值, j+1 ->n-1为无序数组。 */#include#ifdef my //我自己的 我主要看中的是有序无序void insert_sort(int data[],int n){ int原创 2014-10-21 10:35:37 · 389 阅读 · 0 评论 -
约瑟夫环问题
/*约瑟夫环问题起始 : 0 1 2 3 ...... n-1 (头尾连接的环)从这n个数字中 删除第m个 。解析:第一次删除第m个:0 1 2 ...m-2 m ....n-1 (一共n个元素)那么由于环的性质,重新排列头尾====> m m+1 m+2 ... n-1 0 1 2 ...x' m-2 (n-1个元素) 对应原创 2014-10-20 16:37:41 · 411 阅读 · 0 评论 -
快速排序
/* 二叉排序树#includetypedef struct binode{ int data; struct binode * lc , *rc;}binode,*bitree;int searchBST(bitree T, int x ,bitree p ){ if(T==NULL) return 0; if(x==T->data) {p=T; return原创 2014-10-20 12:16:04 · 379 阅读 · 0 评论 -
哈夫曼树的构建
/*哈夫曼树的构建*/#define MAXVALUE 10000#define MAXLEAF 30#define MAXNODE MAXLEAF*2-1typedef struct { int weight; int parent; int lchild; int rchild;}hnode , huffmantree[MAXNODE];void crthuffman原创 2014-10-16 09:41:04 · 524 阅读 · 0 评论 -
将十进制数N转换为r进制的数
/*将十进制数N转换为r进制的数*//*#includeint main(){int a[101];int m,n,i=0;scanf("%d",&m);scanf("%d",&n);while(m/n){a[i]=m%n;i++;m=m/n;if(i==100){printf("stack is full\n");goto end;}}if(原创 2014-10-16 09:37:43 · 3049 阅读 · 0 评论 -
最小生成树prim算法实现
转自: http://www.cnblogs.com/Veegin/archive/2011/04/29/2032388.html转载 2014-10-15 14:33:54 · 395 阅读 · 0 评论 -
哈夫曼树的构建
哈夫曼树的构造(转载) 2012-03-06 13:31:48| 分类: 数据结构|举报|字号 订阅构造哈夫曼树的过程是这样的一、构成初始集合 对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二叉树的初始集合F={T1,T2,T3,...,Ti,...,Tn},其中每棵二叉树Ti中只有一个权值为Wi的根结转载 2014-10-14 18:26:36 · 805 阅读 · 0 评论 -
最小生成树 prim 算法
/*图的遍历*/#includevoid prim(int matrix[][10],int n ,int tree[]){ int i,j,k,m,temp; int visited[10]={0}; for(i=0;i<n;i++) tree[i]=-1; tree[0]=0; j=0; visited[0]=1; while(tree[n-1]<0) { tem原创 2014-10-16 09:38:46 · 357 阅读 · 0 评论 -
C语言深度解剖读书笔记(2.字符的技巧)
转自 http://blog.csdn.net/mbh_1991/article/details/10184395本节接触了,C语言中的三大蛋疼:符号优先级 ++i顺序点 贪心法 (其实这里面好多都是跟编译器有关的,而且有好多问题都是可以通过良好的编程习惯避免的)本节知识点:1.注释问题: 注释不能把关键字弄断,如:in/*注释*/t转载 2014-07-31 14:18:38 · 256 阅读 · 0 评论 -
C语言深度解剖读书笔记(1.关键字的秘密)
转自 http://blog.csdn.net/mbh_1991/article/details/10149805开始本节学习笔记之前,先说几句题外话。其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客。正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下来。等更新完这七章的学习笔记,再打算粗略的看看剩下的一些C语言的书转载 2014-07-31 14:17:31 · 286 阅读 · 0 评论 -
回调函数及其在C语言中的使用
转自 http://blog.csdn.net/gtopia/article/details/101621751、什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用。回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口。转载 2014-07-31 14:41:50 · 1825 阅读 · 0 评论 -
函数指针和函数对象
转自 http://blog.csdn.net/shaoguangcheng/article/details/9763179篇一、函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数。函数指针的声明方法:数据类型标志符 (指针变量名) (形转载 2014-07-31 14:33:17 · 320 阅读 · 0 评论 -
C语言函数指针基础
转自 http://blog.csdn.net/nagecomeontom/article/details/10376321本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数转载 2014-07-31 14:32:21 · 271 阅读 · 0 评论 -
排序方法之堆排序
转自 http://blog.csdn.net/liuzuyi200/article/details/9858179堆排序的实现(—)创建初始堆(二)堆排序在创建初始堆之前首先要了解一些关于堆的概念,还需要了解一些关于平衡二叉树的内容 (1)堆的节点数 =n/2; 并且是只舍不入; (2)最后一个堆结点=(n/2)-1; (3)对于任意结点a[x],可以找到它子结转载 2014-07-31 14:32:16 · 302 阅读 · 0 评论 -
排序方法总结(3)希尔排序
转自 http://blog.csdn.net/liuzuyi200/article/details/8628235希尔排序希尔排序是对插入排序的改进,对中等规模的数据排序效率较高!交换的次数变得少了,效率就高了。希尔排序的算法:(1)相距为k的数据进行比较,若不符合排序的条件,就进行交换。(2)第一次比较时k为数组长度的一半,以后依次减半,直至k为零,比较转载 2014-07-31 14:31:33 · 344 阅读 · 0 评论 -
排序方法总结(2)插入排序
转自 http://blog.csdn.net/liuzuyi200/article/details/8628187插入排序插入排序类和大家玩的纸牌游戏有些类似,在发牌的过程的过程中用右手起的牌,总是和左手里的排进行比较,然后放在恰当的位置。这就是插入排序的思想。以数组为例,其算法是:(1)把数组里第一个数据放在a[0]的位置,然后从a[1]开始,以后的每一个数依转载 2014-07-31 14:29:08 · 290 阅读 · 0 评论 -
C语言深度解剖读书笔记(8.以后的c语言学习计划)
转自 http://blog.csdn.net/mbh_1991/article/details/10654567最近对c语言的总结学习可以告一段落了!觉得这种边学边思考边总结的方式,还不错,还是有一定的进步的!但是对于日后的c语言学习还远远没有停止。所以写了这篇文章来督促自己对c语言的学习,告诉自己还有很多不错的书没有去读。过一段时间,再回头看看。 1.对于c语转载 2014-07-31 14:26:20 · 306 阅读 · 0 评论 -
C语言深度解剖读书笔记(3.预编译处理)
转自 http://blog.csdn.net/mbh_1991/article/details/10222377转载 2014-07-31 14:19:23 · 236 阅读 · 0 评论 -
误解程序运行(从单片机到开始)
转自 http://blog.csdn.net/tietao/article/details/8172411转载 2014-07-31 14:12:05 · 319 阅读 · 0 评论 -
关于C,看过的一些书
转自: http://blog.csdn.net/tietao/article/details/10128283忘了名字的书,《C语言程序设计》(老谭版)《高质量程序设计》《C陷阱与缺陷》《C专家编程》《程序员成长计划》《UNIX环境高级编程》《深入理解计算机系统》《代码大全》《编程精粹》《重构》(转载 2014-07-31 14:08:31 · 300 阅读 · 0 评论 -
C/C++回调函数
转自 http://blog.csdn.net/neo_ustc/article/details/8960047精妙比喻:回调函数就像您随身带的BP机:告诉别人号码,在它有事情时Call您 回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回转载 2014-07-31 14:45:08 · 284 阅读 · 0 评论 -
【c基础】 预处理器 (略有改动)
转自 http://blog.csdn.net/wjgarnett/article/details/9750201一.前言1.编译一个C程序涉及很多步骤。其中第一步骤称为预处理(preprocessing)阶段。C预处理器(preprocessor)在源代码编译之前对其进行文本性质的操作。2.它的主要任务包括删除注释、插入被#include指令包含的内容、定义和替换转载 2014-07-31 14:46:58 · 522 阅读 · 0 评论 -
EOF
转自 http://blog.csdn.net/s200820212/article/details/10322605> 关于文件结束符EOFEOF 是 End Of File 的缩写。在C语言中,它是在标准库中定义的一个宏。人们经常误认为 EOF 是从文件中读取的一个字符(牢记)。其实,EOF 不是一个字符,它被定义为是 int 类型的一个负数(比如 -1)。EOF 也不转载 2014-07-31 14:45:39 · 459 阅读 · 0 评论 -
枚举
转自 http://blog.csdn.net/fin86889003/article/details/10149209转载 2014-07-31 14:13:41 · 302 阅读 · 0 评论