第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; //
这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写
P...
分类:
编程语言 时间:
2014-05-01 10:49:51
阅读次数:
482
原题地址:http://oj.leetcode.com/problems/linked-list-cycle/题意:判断链表中是否存在环路。解题思路:快慢指针技巧,slow指针和fast指针开始同时指向头结点head,fast每次走两步,slow每次走一步。如果链表不存在环,那么fast或者fast...
分类:
编程语言 时间:
2014-05-01 10:33:38
阅读次数:
426
原题地址:http://oj.leetcode.com/problems/linked-list-cycle-ii/题意:如果链表中存在环路,找到环路的起点节点。解题思路:这道题有点意思。首先使用快慢指针技巧,如果fast指针和slow指针相遇,则说明链表存在环路。具体技巧参见上一篇http://w...
分类:
编程语言 时间:
2014-05-01 08:19:31
阅读次数:
340
一开始由这段代码引发的纠结
get_base(current->ldt[1])
下面是各个相关的代码,摘自不同的header files。。。
current是指向当前task的指针
struct desc_struct ldt[3];
struct desc_struct {
unsigned long a,b;
} ;
#define _get_...
分类:
系统相关 时间:
2014-04-29 13:42:20
阅读次数:
546
众所周知;在C语言里面用const;是可以修改的;
//C语言里面可以通过指针修改
int main()
{
//可以这么说在C语言中a是一个只读的常量。按照理论我们不好修改//
const int a=10;
int *p=null;
p=(int *)&a;
//但是可以通过地址修改
*p=11;
printf("修改之后%d",a);
}
这里面的a是...
分类:
编程语言 时间:
2014-04-29 13:24:21
阅读次数:
375
类--隐含的this指针引言: 在前面提到过,成员函数具有一个附加的隐含形参,即指向该类对象的一个指针。这个隐含形参命名为this,与调用成员函数的对象绑定在一起。成员函数不能定义this形参,而是有编译器隐含地定义。成员函数可以显式的使用this指针,但不是必须这么做。1、何时使用this指针 有一种情况下,我们必须显式使用this指针:当需要将一个对象作为整体引用而不是引用对象的一...
分类:
编程语言 时间:
2014-04-29 13:21:21
阅读次数:
371
第三讲 风格与模式
3.1自顶向下风格
复杂问题分解,直到小问题足够简单,可以掌控为止
是一种思考方式
把大的任务不断的分解为更小的子任务
另一法宝:忽略,忽略细节
程序问题
制定框架---》逐步细化---》逐步精华---》分解为子问题
打印特定的形状
做一个二维数组的缓冲区
向缓冲区输出
缓冲区输出屏幕上
数组初始元素都是0
表格:横线,竖线。...
分类:
其他好文 时间:
2014-04-28 10:16:40
阅读次数:
436
如上图,判断线段AB和线段CD相交。
分析:如果线段AB和线段CD相交,只能是图中的两种相交情况。可以用向量叉乘来判断。如果(向量AB叉乘向量AC)*(向量AB叉乘向量AD)
设A(X1,Y1), B(X2, Y2), C(X3, Y3), D(X4, Y4),三角形ABC的面积为:2A = =
X1*Y2 + X3*Y1 + X2*Y3 - X3*Y2 - X1*Y3 - X2*Y1。...
分类:
其他好文 时间:
2014-04-27 22:32:13
阅读次数:
425
合并并且排序指针数组和二维数组里面存放的字符串用函数调用的格式,C里面的内存模型;
#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
char **sortArray1Array2_01(char **pArray1, int nArray1Num, char(*pArray2)[30], int nArray2Num, int *nArray3Num)...
分类:
其他好文 时间:
2014-04-27 22:16:05
阅读次数:
411
Java 内存分配
一个完整的Java程序运行过程会涉及以下内存区域:
l 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。
l 栈:保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区对象的引用(指针)。也可以用来保存加载方法时的帧。
l 堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。...
分类:
编程语言 时间:
2014-04-27 22:13:18
阅读次数:
349