一个关于指针与双重指针区别的小实验

摘要: 1 #include<iostream> 2 using namespace std; 3 void test1(int n,char* ptr) 4 { 5 cout<<"the address of ptr:"<<&ptr<<endl; 6 cout<<"this is the test in test1:"<<ptr<<endl; 7 ptr="mk"; 8 } 9 void test2(int n,char** ptr)10 {11 c 阅读全文
posted @ 2012-03-14 10:39 专吃兔子的大黑猫 阅读(1090) 评论(0) 推荐(0) 编辑

重载,覆盖和隐藏的区别

摘要: 转载地址:http://blog.csdn.net/besthyq/article/details/1373007“overload”翻译过来就是:超载,过载,重载,超出标准负荷;“override”翻译过来是:重置,覆盖,使原来的失去效果。先来说说重载的含义,在日常生活中我们经常要清洗一些东西,比如洗车、洗衣服。尽管我们说话的时候并没有明确地说用洗车的方式来洗车,或者用洗衣服 的方式来洗一件衣服,但是谁也不会用洗衣服的方式来洗一辆车,否则等洗完时车早就散架了。我们并不要那么明确地指出来就心知肚明,这就有重载的意思了。在 同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同) 阅读全文
posted @ 2012-03-14 09:42 专吃兔子的大黑猫 阅读(1758) 评论(0) 推荐(0) 编辑

成员对齐

摘要: 转自:http://www.cnblogs.com/growup/archive/2012/01/27/2330296.htmlstruct MyStruct { double dda1; char dda; int type };sizeof(MyStruct)=16 (8+1+3(空白)+4)因为:在默认情况下,VC规定各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。VC为了确保结构的大小为结构的字节边界数(即该结构中占用最大空间的类型所占用的字节数)的倍数,所以在为最后一个成员变量申请空间后,还会根据需要自动填充空缺的字节。因此struct M 阅读全文
posted @ 2012-03-13 18:52 专吃兔子的大黑猫 阅读(253) 评论(0) 推荐(0) 编辑

堆栈的实现

摘要: 编的一个非常简单的堆栈实现: 1 #include<iostream> 2 using namespace std; 3 const int MaxSize=100; 4 class stack{ 5 private: 6 int sta[MaxSize]; 7 int top; 8 public: 9 stack();10 bool IsEmpty();11 bool IsFull();12 void Push(int data);13 int Pop(void);14 void dis(void);15 };16 ////17... 阅读全文
posted @ 2012-03-05 09:19 专吃兔子的大黑猫 阅读(219) 评论(0) 推荐(0) 编辑

归并排序

摘要: 1 void Merge(int a[], int b[], int low, int mid, int high) 2 { 3 int k = low; 4 int begin1 = low; 5 int end1 = mid; 6 int begin2 = mid + 1; 7 int end2 = high; 8 while(begin1 <= end1 && begin2 <= end2) 9 {10 if(a[begin1] <= a[begin2])11 b[k++] = a[begi... 阅读全文
posted @ 2012-02-29 19:31 专吃兔子的大黑猫 阅读(241) 评论(0) 推荐(0) 编辑

快速排序算法分析

摘要: 1 void QuickSort(int data[], int left, int right) 2 { 3 int temp = data[left]; 4 int p = left; 5 int i = left, j = right; 6 7 while (i <= j) 8 { 9 while (data[j] >= temp && j >= p )10 j--;11 if(j >= p)... 阅读全文
posted @ 2012-02-28 20:28 专吃兔子的大黑猫 阅读(497) 评论(0) 推荐(0) 编辑

C++中数组的赋值方法

摘要: 在C++中,如果一个数组被定义在类中,那么它的赋值方法和通常的面向过程中的复制方法是不一样的。不能再定义数组的时候同时给数组赋值,也不能再构造函数中直接利用等式对数组进行赋值。一种办法如下: 1 class A{ 2 private : 3 int m_arr[10]; 4 public: 5 A() 6 { 7 temp_arr[10] = {1,2,3,4,5,6,7,8,9,10}; 8 memcpy(m_arr... 阅读全文
posted @ 2012-02-26 14:55 专吃兔子的大黑猫 阅读(35630) 评论(1) 推荐(1) 编辑

linux初步

该文被密码保护。 阅读全文
posted @ 2012-02-16 14:07 专吃兔子的大黑猫 阅读(5) 评论(0) 推荐(0) 编辑

利用typedef定义函数指针(转载自ITeye)

摘要: 进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带两个int 参数, 返回一个int 在分析这种形式的定义的时候可以用下面的方法: 先去掉typedef 和别名, 剩下的就是原变量的类型. 去掉typedef和MYFUN以后就剩: int (*)(int, int)用法二:ty 阅读全文
posted @ 2012-02-16 10:13 专吃兔子的大黑猫 阅读(11582) 评论(1) 推荐(0) 编辑

DLL初步(2)

摘要: 有时所编写的动态链接库需要在其他种类的编译器或者语言类别中进行调用。如前面所述,DLL文件生成的名称是自己自己改写过的。可以在DLLL1工程中添加一个头文件,头文件中添加如下代码:1 _declspec(dllimport) int add(int a,int b);2 _declspec(dllimport) int sub(int a,int b);所有调用这个动态链接库的工程都必须包含这个头文件。所有提供动态链接库的工程还必须提供这个头文件(个人感觉这个方法不太好)。可以利用宏编译使动态链接库既可以被本链接库使用,也可以被外部程序使用,代码:cpp: 1 #define DLL_API 阅读全文
posted @ 2012-02-15 09:23 专吃兔子的大黑猫 阅读(480) 评论(0) 推荐(0) 编辑