鹰之歌

既然你崇拜鹰,就要像鹰一样翱翔天际,俯瞰大地。哪怕会摔的粉身碎骨。

导航

文章分类 -  C/C++

归并排序
摘要:一.实现1)第一种写法:#include<iostream.h>#include<stdlib.h>#include<time.h>#define LENGTH 15void Merge(int a[],int left,int right,int rightend){ int leftend=right-1; int n1=leftend-left+1; int n2=rightend-right+1; int *tempArrayA=(int*)malloc(sizeof(int)*n1); int *tempArrayB=(int*)malloc(si 阅读全文

posted @ 2011-11-09 19:42 鹰之歌 阅读(211) 评论(0) 推荐(1)

算术运算中隐式类型转换
摘要: 阅读全文

posted @ 2011-10-21 15:08 鹰之歌 阅读(216) 评论(1) 推荐(0)

逻辑右移与算术右移
摘要: 阅读全文

posted @ 2011-10-21 14:43 鹰之歌 阅读(326) 评论(1) 推荐(0)

"unsigned ,signed,short,int,long"的一些说明--------《the c programing language》
摘要: 阅读全文

posted @ 2011-10-18 16:09 鹰之歌 阅读(227) 评论(0) 推荐(0)

将数组元素分成两部分,再整体交换位置
摘要:昨日去某公司笔试,碰到一个题如下: 对于一个数组,已知其长度为n,和一小于n的正整数p,将该数组的前p个元素和后面的元素交换一下位置,例如a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3,4,5,6},若p=6,则输出为{7,8,9,10,11,12,13,14,15},要求占用尽可能少的空间。 思路:其实方法很简单,将每一个元素都向前移动一位,移动P次即可,不要陷入怎么分段拷贝的思路中。 1 #include<iostream.h> 2 3 void move(int *s,int m,int n); 4 5 void main() 阅读全文

posted @ 2011-06-26 18:59 鹰之歌 阅读(1732) 评论(5) 推荐(0)

字符串指针与字符数组的区别
摘要:参考文献:《C专家编程》 相信很多同学在初学编程时对char *a=”abcd”和char a[]=”abcd”混淆过,甚至某些教材根本不提其区别,只有在实际编程中出现运行时错误才会发现原来这是一个大问题。在读到《C专家编程》这一章时,对作者所讲真是深有同感,虽然很多东西自己现在是知道的,只不过自己体会是多少走了一些弯路的,要是在我最开始学编程时就能看到这本书该多好。 数组和指针都可以在它们的定义中用字符串常量进行初始化,尽管看上去一样,底层的实现机制却不相同。 定义指针时,编译器并不为指针所指向的对象分配空间,它只是分配指针本身的空间,除非在定义的同时赋值给指针一个字符串常量进行初始化。例如 阅读全文

posted @ 2011-06-03 19:39 鹰之歌 阅读(984) 评论(0) 推荐(0)

将字符串存储形式的十六进制数转换为整数
摘要:/******************************************************************************//* * convert a hex string to an integer. The end of the string or a non-hex * character will indicate the end of the hex specification. */unsigned int hextoi(char *hexstring){ register char *h; register unsigned int c, v 阅读全文

posted @ 2011-06-02 13:30 鹰之歌 阅读(376) 评论(0) 推荐(0)

static关键字
摘要:当处于不同的上下文时,static关键字具有不同的意思: 1.当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从exteral改为internal,但标识符的存储类型和作用域不受影响。用这种方式声明的函数或变量只能在声明它们的源文件中访问。static只对缺省链接属性为external的声明才有改变链接属性的效果。 2.当它用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,但变量的连接属性和作用于不受影响。用这种方式声明的变量在程序执行之前创建,并在程序的整个执行期间一直存在,而不是每次在代码块开始执. 阅读全文

posted @ 2011-06-01 14:57 鹰之歌 阅读(150) 评论(0) 推荐(0)

堆栈的主要用途
摘要:前注:参考《C专家编程》 堆栈段有三个主要的用途,其中两个跟函数有关,另一个跟表达式计算有关。 1.堆栈为函数内部声明的局部变量提供存储空间。 2.进行函数调用时,堆栈存储于此有关的一些维护性信息。这些信息被称为堆栈结构(stack frame,有的书中译为栈帧),灵位一个更常用的名字是过程活动记录(precedure activation recored).它包括函数调用地址(即当所调用的函数结束后跳回的地址)、任何不适合装入寄存器的参数以及一些寄存器值的保存。 3.堆栈也可以作为暂时存储区。 阅读全文

posted @ 2011-05-27 21:53 鹰之歌 阅读(1711) 评论(0) 推荐(0)

数组和指针
摘要:情况一:a.cpp:int test[3]={1,2,3};b.cpp:#include<iostream.h>extern int test[];void main(){ cout<<test[2]<<endl;}运行结果正确,打印test[2],即3到标准输出。情况二:定义为数组,以指针方式引用a.cpp:int test[3]={1,2,3};b.cpp:#include<iostream.h>//extern int test[];extern int *test;void main(){ cout<<test[2]<& 阅读全文

posted @ 2011-05-27 16:54 鹰之歌 阅读(157) 评论(0) 推荐(0)

typedef与#define的区别
摘要:1.可以用其他类型说明符对宏类型进行扩展,但对typedef所定义的类型名却不能这样做。如下所示: #define peach intunsigned peach i;/*没问题*/typedef int banana;unsigned banana i;/*错误,非法!*/2.在连续几个变量的声明中,用typedef定义的类型能够保证声明中的所有变量均为同一种类型,而用#define定义的类型则无法保证,如下所示:#define int_ptr int *;int_ptr chalk,cheese;经过宏扩展,第二行变为:int * chalk,cheese;这使得chalk和cheese成 阅读全文

posted @ 2011-05-25 17:29 鹰之歌 阅读(131) 评论(0) 推荐(0)

const与指针
摘要:有如下几种const和指针结合的声明:1.const int *ptr;2.int const *ptr;3.int *const ptr;4.const int *const ptr;5.int const *const ptr; 其中,1,2两种声明表示ptr指向的对象是只读的,但是ptr本身是可以改变的(即可以指向其他内容);3声明表示ptr本身是只读的(即不能改变其值,也就是不能改变其指向);4,5两种声明表示ptr本身和ptr所指向的对象都是只读的。 测试程序如下:(只考虑该测试主题,忽略其他规范)View Code #include<iostream.h>int mai 阅读全文

posted @ 2011-05-25 15:03 鹰之歌 阅读(252) 评论(0) 推荐(0)

返回比输入值大的第一个2的整数次幂
摘要:在研究GoAhead源码时,看到一个函数定义如下:View Code 1 /******************************************************************************/ 2 /* 3 * Find the smallest binary memory size that "size" will fit into. This 4 * makes the ringq and ringqGrow routines much more efficient. The balloc 5 * routine likes p 阅读全文

posted @ 2011-05-20 20:41 鹰之歌 阅读(350) 评论(0) 推荐(0)

可变参数函数的一个简单例子
摘要:这里只是简单的描述一下C语言中如何使用参数数量可变的函数,至于stdarg.h中关键宏如何实现以及编译器如何处理这些更底层的东西,以后再说。我们知道,C语言中函数体包含三个要素:返回值类型、函数体、参数列表。其中参数列表一般情况下都包含个数及类型确定的参数信息,但是千万不要以为函数的参数就必须是个数确定的,其实我们每天都在用着这些例外的情况:printf(),scanf()..。这种函数的原型一般是ReturnType A (Type a,...Type b,...),第二个省略号即表示该函数参数个数为确定。那么如何在自己的代码中实现这种函数呢?举个例子,我们想编写一个函数average(). 阅读全文

posted @ 2011-05-20 16:20 鹰之歌 阅读(503) 评论(0) 推荐(0)