摘要:
1.常量指针,指针常量 常量指针:指向常量的指针。int const *p; 指针常量:这个指针是个常量。int *const p; 可以这么记,常量(const),指针(*)。 2.作用域 编译器可以确认4中不同类型作用域:文件作用域、函数作用域、代码块作用域、原型作用域 3.链接属性 exter
阅读全文
posted @ 2016-06-13 15:11
EazyChange
阅读(105)
推荐(0)
摘要:
排序算法稳定性:在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。 附上一个快速排序时间复杂度分析:http://book.51cto.com/art/201108/287089.htm
阅读全文
posted @ 2016-06-12 22:13
EazyChange
阅读(152)
推荐(0)
摘要:
strcpy 能把 strSrc 的内容复制到 strDest,为什么还要 char * 类型的返回值?答:为了实现链式表达式。 // 2 分例如 int length = strlen( strcpy( strDest, “ hello world”) );
阅读全文
posted @ 2016-06-09 14:38
EazyChange
阅读(137)
推荐(0)
摘要:
先看这个例子,函数GetMemory明显不能分配内存给str,而且还会造成内存泄漏。 分析一下过程: 1.声明并定义str,str地址为0x00000000; 2.进入函数。把str拷贝给p,即p只是一个str的副本,拥有str的地址值:0x00000000; 3.malloc开始分配内存,分配成功
阅读全文
posted @ 2016-06-07 22:40
EazyChange
阅读(657)
推荐(0)
摘要:
小涛有一次给我看了一篇博客:http://c.biancheng.net/cpp/html/476.html. 那个强制转换给我搞懵了。a不是本来就是一个int形的4字节地址吗? 后来看了下面的注解才明白。a确实是数组的首地址,强制转换后是a的第一个字节的地址。 即a只是个表示地址的标识符,a+1,
阅读全文
posted @ 2016-06-07 14:59
EazyChange
阅读(634)
推荐(0)
摘要:
关于结构体内存对齐有一下几条原则: 1.每个元素的偏移量=Min(对应元素的字节数,系统或编译器的对齐字节数)。 2.结构体的大小的,其最大元素字节数的整数倍。 3.结构体的大小是,最后一个元素偏移量+最后一个元素大小+可能补充的字节。 4.如果结构体中有数组,当做单一元素看待。 上面连个结构体大小
阅读全文
posted @ 2016-05-15 13:43
EazyChange
阅读(147)
推荐(0)
摘要:
之前的一篇,信号量使用错误了,连皮毛都算不上。 这几天看了《深入理解计算机系统》,最后几章有关于信号量同步的。自己也特地演练了一下。 先补充一些感想,在思考为何不断去看书。知识是永远学习不完的,但是思想和认知是可以不断去更新和加深的。 所以,读书并不是为了体现自己的知识面,而是去理解和提高认识! 回
阅读全文
posted @ 2016-05-14 14:58
EazyChange
阅读(288)
推荐(0)
摘要:
看了一些关于信号量的线程同步方式,今天用了一下。 我对于线程同步一直有疑问,在主线程和子线程处理时间不相同的时候,用这种信号量,如何保证同步。 假如主线程比较快,信号量连加了n个,但是子线程就不断减这个n,减到0。但是如果主线程太快太快,需要停一停,比如缓冲区快溢出了,主线程需要挂起。 由什么来唤醒
阅读全文
posted @ 2016-05-09 21:20
EazyChange
阅读(898)
推荐(0)
摘要:
struct PriorityQueue{ int Cap; int size; int *data; }; void Print(PriorityQueue* H) { for (int i = 0; i size+1; i++) { printf("%d ", H->data[i]); } printf("\n"); ...
阅读全文
posted @ 2016-04-05 21:37
EazyChange
阅读(705)
推荐(0)
摘要:
略显繁琐,不过能用。 补充一个线程不安全的库函数法: 方法简单,但是strtok函数是在静态区进行分割的函数,简单用用还行,尽量还是多用自己编写的函数吧。
阅读全文
posted @ 2016-03-23 13:49
EazyChange
阅读(462)
推荐(0)